我正在为BcUser模型构建一个显示页面,我希望包含一行,使管理员能够从下拉列表中为用户选择律师事务所。现在我有以下内容:
show :title => :first_name do |bc_user|
attributes_table do
row :id
row('First Name', :sortable => :first_name) {|bc_user|bc_user.first_name }
row('Last Name', :sortable => :last_name) {|bc_user| bc_user.last_name }
row 'Law Firm' do
select :law_firm, options_for_select(LawFirm.all.collect{|l| [l.name, l.token]})
end
end
end
返回:
<tr class="row row-law_firm">
<th>Law Firm</th>
<td>
<select>law_firm</select>
</td>
</tr>
系统中有两家律师事务所,我想知道为什么我没有选择选择的选项?
编辑#1 在玩完之后,我能够产生接近我想要的东西,但它省略了第一个选项:
show :title => :first_name do |bc_user|
attributes_table do
row :id
row('First Name', :sortable => :first_name) {|bc_user|bc_user.first_name }
row('Last Name', :sortable => :last_name) {|bc_user| bc_user.last_name }
end
panel 'Law Firm'do
table_for(bc_user) do
column 'Law Firm' do
select :law_firm_id, collection: options_for_select(LawFirm.all.collect{|l| ["#{l.name}, #{l.token}", l.token]})
end
end
end
end
返回:
<tbody>
<tr class="odd" id="bc_user_2">
<td class="col col-law_firm">
<select collection="<option value=" 0331b8b0da9c"="">Daniel INC, 0331b8b0da9c <option value="66a8ff8ba7c1">Jason Inc, 66a8ff8ba7c1</option>">law_firm_id</select>
</td>
</tr>
</tbody>
第一个选项,Daniel INC ......没有显示在菜单中。
答案 0 :(得分:2)
我能够让它工作,我仍然不知道为什么我需要在集合数组的开头插入一个空字符串。也许这与主动管理员改变格式有关。对于遇到此问题的人来说,这就是我想出来的:
panel 'Law Firm'do
table_for(bc_user) do
column 'Law Firm' do
select :law_firm_id, collection: options_for_select(LawFirm.all.collect{|l| ["#{l.name}, #{l.token}", l.token]}.unshift(''))
end
end
end