【问题标题】:How do you create an array of emails in rails?如何在 Rails 中创建一系列电子邮件?
【发布时间】:2014-01-10 14:14:33
【问题描述】:

我正在尝试从我的用户模型创建一组电子邮件,并使用辅助方法来访问它们。然后我会将这个数组加载到下拉选择器中。我是 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>

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

【问题讨论】:

    标签: ruby-on-rails arrays activerecord models


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 2014-03-21
      • 1970-01-01
      • 2021-10-29
      • 2013-04-12
      相关资源
      最近更新 更多