Ruby on rails _选择方法的_集合中的选项_的实现
在rails中处理Ruby on rails _选择方法的_集合中的选项_的实现,ruby-on-rails,Ruby On Rails,在rails中处理select标记时,我在理解\u select方法的\u collection\u中的options\u时遇到了麻烦。据我所知,此帮助程序需要一组任意对象和两个附加参数:分别从中读取选项值和文本的方法的名称: <%= options_from_collection_for_select(Product.all, :id, :name) %> 那么,有人能提出更好的解决方案吗?在这种情况下,您可以使用模型方法 在product.rb中 def get_categor
select
标记时,我在理解\u select方法的\u collection\u中的options\u时遇到了麻烦。据我所知,此帮助程序需要一组任意对象和两个附加参数:分别从中读取选项值和文本的方法的名称:
<%= options_from_collection_for_select(Product.all, :id, :name) %>
那么,有人能提出更好的解决方案吗?在这种情况下,您可以使用模型方法
在product.rb中
def get_category_name
self.category.name
end
您可以在选项\u中调用它,从\u集合\u选择为
<%= options_from_collection_for_select(Product.all, :id, :get_category_name) %>
首先,它将检查产品表中是否存在任何列,然后它将检查方法。您可以在产品模式中使用category\u name创建一个实例方法
def category_name
self.category.name
end
然后在视图中使用此辅助对象
<%= options_from_collection_for_select(Product.all, :id, :category_name) %>
在产品型号中:
def category_name
self.category.name
end
鉴于:
<%= options_from_collection_for_select(Product.all, 'id', 'category_name') %>
对于产品
型号中的类别名称
,您需要有getter方法:
def category_name
self.category.name
end
在您看来,您只需调用:category\u name
:
<%= options_from_collection_for_select(Product.all, :id, :category_name) %>
希望这将有助于粘贴您想要粘贴的完整选择标签Hanks@Madan现在我知道了问题所在,而不是定义我使用的范围的方法。你能建议使用同样的范围吗。谢谢,顺便说一句
<%= options_from_collection_for_select(Product.all, :id, :category_name) %>