如何在rails中创建一组电子邮件?

时间:2014-01-10 14:14:34

标签: ruby-on-rails arrays activerecord models

我正在尝试从我的用户模型创建一组电子邮件,并使用帮助程序方法来访问它们。然后我将这个数组加载到下拉选择器中。我是rails的新手,MVC框架对我来说也是新手。

在我的application_helper.rb

  def create_user_selector_array
    @user = User.select(:email).distinct
  end

在我的_form.html.erb部分

<%= f.select(:associate, @user.map { |value| [ value, value ] }) %>
<%= @user %> 

当我启动此网站时似乎正在讨厌的是,我的选择器包含以下内容:

#<User:>(Characters)

当我拉出数组时,它打印出来:

ActiveRecord::Relation::ActiveRecord_Relation_User:0x007fb28894d508>

我感觉很亲密,但我不完全确定我在这里做错了什么。

1 个答案:

答案 0 :(得分:3)

在Rails 3.2及更新版本中,您可以使用pluck

User.pluck(:email)
# => ["foo@example.com", "bar@example.com"]

否则,您的解决方案只需要map

@user = User.select(:email).distinct.map(&:email)

使用select只确定返回哪些字段,但是仍然会得到一个ActiveRecord对象数组,而不是您期望的字符串。