0

我在使用 collection_select 创建下拉菜单时遇到问题。所有的导游都说这个

<%= collection_select(:page, :user_id, @users, :id, :full_name) %>

应该可以工作,但是当我运行服务器时,它不是出现的用户列表,而是一个空白列表。关联是页面属于一个用户并且一个用户有很多页面,并且当我调用@users = User.all时应该在控制器中获取数据库中的用户

关于如何填充下拉列表的任何想法?

4

2 回答 2

1

我也浏览了apidocuments,

它在某处说如果您的调用方法为零,则不包括 :prompt 或 :include_blank 就不会进行选择,

尝试<%= collection_select(:page, :user_id, @users, :id, :full_name, :prompt=>true) %>

于 2012-09-28T13:40:47.317 回答
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_nameUser 实例的正确方法

User.first.full_name

编辑:关于full_name带有后备的方法的建议

class User < ActiveRecord::Base
  def full_name
    "#{first_name} #{last_name}".presence or name
  end
end
于 2012-09-28T15:05:40.857 回答