Ruby on Rails 使用视图助手中的变量在视图中动态生成字段名称

Posted

技术标签:

【中文标题】Ruby on Rails 使用视图助手中的变量在视图中动态生成字段名称【英文标题】:Ruby on Rails Dynamically generate field name in view using variable from view helper 【发布时间】:2012-06-17 00:30:08 【问题描述】:

在我看来,假设我有这样的事情:

<%= f.text_field :name_first %>

还有一次:

<%= f.text_field :name_last %>

我想使用视图辅助方法动态生成它们,而不是对字段名称进行硬编码。

def category_name
    @contact_info.category.name
end

def return_field_name
  category_lower = category_name.downcase
  ":name"+category_lower  
end

所以现在我的视图应该是这样的:

 <%= f.text_field return_field_name %>

【问题讨论】:

【参考方案1】:

写:

def return_field_name
  category_lower = category_name.downcase
  "name#category_lower".to_sym
  # but I'm sure that without #to_sym it should work as well
end

但如果它对你有帮助,你应该只编写纯方法。恕我直言,这是非常好的做法。

【讨论】:

谢谢!这正是我所需要的。奇迹般有效。我不能接受这个答案,因为我只有 11 个代表点(4 个短)。我会尽快回到这里接受。再次感谢!

以上是关于Ruby on Rails 使用视图助手中的变量在视图中动态生成字段名称的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails,带有对象方法的表单助手

如何从 Ruby on Rails 中的字符串值创建变量名?

Ruby on Rails 中一个共享视图的两个控制器

Ruby on rails 辅助方法实例变量

Ruby on Rails:使用清理助手在代码块内允许小于号“<”

Ruby on Rails 变量在视图中显示 Active Record 数据而不是整数