我正在尝试从我的用户模型创建一组电子邮件,并使用帮助程序方法来访问它们。然后我将这个数组加载到下拉选择器中。我是rails的新手,MVC框架对我来说也是新手。
def create_user_selector_array
@user = User.select(:email).distinct
end
<%= f.select(:associate, @user.map { |value| [ value, value ] }) %>
<%= @user %>
当我启动此网站时似乎正在讨厌的是,我的选择器包含以下内容:
#<User:>(Characters)
当我拉出数组时,它打印出来:
ActiveRecord::Relation::ActiveRecord_Relation_User:0x007fb28894d508>
我感觉很亲密,但我不完全确定我在这里做错了什么。
答案 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对象数组,而不是您期望的字符串。