查看
<%= collection_select(@table, "sp", @pops, "col2", "col2", {:prompt => "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])。请给我一个想法,在单一集合中填充两列选择
答案 0 :(得分:6)
在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将如下所示
<select name="table[sp]">
<option value="">Select one</option>
<option value="col2a[col3a]">col2a</option>
<option value="col2b[col3b]">col2b</option>
<option value="col2c[col3c]">col2c</option>
</select>
这就是你想要的吗?
答案 1 :(得分:1)
那么你使用col2作为键,col3作为值吗? Hash[*col2.zip(col3)]
答案 2 :(得分:-1)
在Table模型中,添加以下方法(将其命名为适合您应用的任何内容,我将其命名为“combined_value”)
def combined_value “#{self.col2} [#{self.col3}]” 端
在视图中,collection_select如下
&lt;%= collection_select(@ table,“sp”,@ pops,“col2”,“combined_value”,{:prompt =&gt;“选择一个”}}%&gt;
生成的HTML将如下所示
选择一个 col2a [col3a] col2b [col3b] col2c [col3c]
这是我想要的......我的问题可能会让某些人感到困惑......对不起......上帝感谢Hoa ...它的工作是我的要求......