1

第 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一个集合选择中的两个模型。我没主意了。让我知道是否需要更多详细信息。任何帮助表示赞赏。谢谢。

4

1 回答 1

1

您已经为 text_method 提供了 :id 给 collection_select。检查文档以了解此助手的工作原理。

一种解决方案是在每个模型中创建一个“别名”方法,然后您可以在 collection_select 中调用它:

模型1.rb

class Model1
  def text_value
    name
  end
end

模型2.rb

class Model2
  def text_value
    type
  end
end

出于演示目的,我将该方法命名为 text_value。您可能需要为该属性提供不同的名称。

顺便说一下,类型作为属性是为单表继承表保留的,因此最好使用不同的属性名称。

在视图中

<%= collection_select :id,:id, @all, :id, :text_value, {prompt: "All Templates"} %>
于 2016-04-18T09:19:57.810 回答