Rails 4.1
Ruby 2.1.1
在我的助手/ roles_helper.rb中,我有:
def roles_list_generator
roles = Role.all.order(:role)
if roles
roles_matrix = [['','']]
roles.each do |r|
roles_matrix << [r.description,r.role]
end
return roles_matrix
end
end
然后,我可以在我的views / users / form.html.erb中使用它:
<%= f.select :role, options_for_select(roles_list_generator) %>
当我查看新内容时会呈现的内容:views / users / new.html.erb:
<%= render 'form' %>
问题在于我无法再使用views / users / edit.html.erb形成.jpg.erb。
我确实尝试过:
<%= f.select :role, options_for_select(roles_list_generator), :selected => @user.role %>
但那不起作用
这将是int form.html.erb:
<%= f.select :role, options_for_select(roles_list_generator, @user.role) %>
有什么想法吗?
答案 0 :(得分:1)
尝试
f.collection_select :role, Role.all.order(:role), :id, :description
然后您可以尝试使用自定义方法 - 添加提示符:true。这将消除填充空条目的需要。
f.collection_select :role, Role.all.order(:role), :id, :description, prompt: true
以下是文档: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select