在单个collection_select Rails中填充两列
视图
"Select one"}) %>
调节器
@pops = Table.find(:all, :conditions=>{:col1 => "xyz"}, :order=> 'col2', :select=> 'DISTINCT col2')
这是我现有的代码。 我正在收集column2中的值并填充它。 现有的填充值为(col2a,col2b,col2c)
现在,我希望在一个collection_select中填充两列col2和col3。 我想填充像(col2a [col3a],col2b [col3b],col2c [col3c])。 请给我一个想法,在单一集合选择中填充两列
在Table模型中,添加以下方法(将其命名为适合您应用的任何内容,我将其命名为“combined_value”)
def combined_value "#{self.col2}[#{self.col3}]" end
在视图中,collection_select如下所示
<%= collection_select(@table, "sp", @pops, "combined_value", "col2", {:prompt => "Select one"}) %>
生成的HTML将如下所示
那是你要的吗?
那么你使用col2作为键,col3作为值吗? Hash[*col2.zip(col3)]
在Table模型中,添加以下方法(将其命名为适合您应用的任何内容,我将其命名为“combined_value”)
def combined_value“#{self.col2} [#{self.col3}]”结束
在视图中,collection_select如下所示
<%= collection_select(@ table,“sp”,@ pops,“col2”,“combined_value”,{:prompt =>“选择一个”}}%>
生成的HTML将如下所示
选择一个col2a [col3a] col2b [col3b] col2c [col3c]
这是我想要的……我的问题可能会让某些人感到困惑……对不起……上帝感谢Hoa ……它的工作是我的要求……