我在使用collection_select创建下拉菜单时遇到问题。所有导游都说这个
<%= collection_select(:page, :user_id, @users, :id, :full_name) %>
应该可以工作但是当我运行服务器时,而不是出现它的用户列表只是一个空白列表。关联是页面属于用户,用户有很多页面,当我调用@users = User.all
时,数据库中有用户应该在控制器中获取有关如何填充下拉列表的想法吗?
答案 0 :(得分:1)
我也经历过apidocuments,
在某个地方,如果你的调用方法为零,则表示没有选择而不包括:prompt或:include_blank
尝试<%= collection_select(:page, :user_id, @users, :id, :full_name, :prompt=>true) %>
答案 1 :(得分:1)
您是否在@users
中的PageController
变量中加载了任何内容?
如果它不属于(语义上)控制器,请将其作为辅助方法
module PagesHelper
def users_for_select
User.all
end
end
并在视图中
<%= collection_select(:page, :user_id, users_for_select, :id, :full_name) %>
同时在控制台中检查:full_name
是否是用户实例的正确方法
User.first.full_name
修改:使用后备的full_name
方法提案
class User < ActiveRecord::Base
def full_name
"#{first_name} #{last_name}".presence or name
end
end