活动管理员 - 行的下拉列表

时间:2014-11-17 17:08:19

标签: ruby-on-rails select drop-down-menu activeadmin

我正在为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>"&gt;law_firm_id</select>
    </td>
  </tr>
</tbody>

第一个选项,Daniel INC ......没有显示在菜单中。

1 个答案:

答案 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