第1部分:我想要的是在一个集合中选取两个表的记录。之后,我想根据所选项目执行搜索。
到目前为止,我已经设法以这种方式在一个选择中获取记录:
控制器:
@result1 = Model1.all
@result2 = Model2.all
@all = @result2 | @result1
查看:
<%= collection_select :id,:id,@all, :id, :id,{prompt: "All Templates"} %>
这里的问题是我想显示名称格式Model1并从Model2中键入。
第2部分如果用户选择name
,我想从Model1获取记录,如果选择了type
,我想从Model2获取记录。
我能够得到的是一个集合中两个模型的id
选择。我没有想法。如果需要更多详细信息,请与我们联系。任何帮助表示赞赏。感谢。
答案 0 :(得分:1)
您已为text_method提供了:collection到collection_select的ID。检查docs以查看此帮助程序的工作原理。
一种解决方案是在每个模型中创建一个“别名”方法,然后可以在collection_select中调用:
model1.rb
class Model1
def text_value
name
end
end
model2.rb
class Model2
def text_value
type
end
end
为了演示目的,我将方法命名为text_value。您可能需要为该属性提供不同的名称。
顺便说一下,作为属性的类型是为Single Table Inheritance表保留的,所以最好使用不同的属性名称。
视图中的
<%= collection_select :id,:id, @all, :id, :text_value, {prompt: "All Templates"} %>