rails 3.2 collection_select没有加载值

时间:2012-09-28 13:20:31

标签: ruby-on-rails ruby

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

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

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

时,数据库中有用户应该在控制器中获取

有关如何填充下拉列表的想法吗?

2 个答案:

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