在单个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 ……它的工作是我的要求……