在我的应用程序中,我有一个非常简单的关联。用户has_many电子邮件,此关联按预期使用create / update / delete工作。
当我试图显示信息时,这就是事情变得困难的地方。
在我的控制器中,我有以下代码:
def prospective_user
@users = Account::User.all_by_user_status(0)
@users.each do |u|
u.email = u.email.get_primary_email
end
end
这应该做的是使用单个记录创建Account :: Email模型的实例。
方法get_primary_email如下所示:
def self.get_primary_email
first :conditions => ["is_primary = 1"]
end
我看到的问题是在我看来,我在下面得到例外。这有点令人困惑,因为我没有遍历电子邮件对象。
undefined method each' for #<Account::Email:0x7fcc3a5c49d8>
我用来测试的代码是:
<% @users.each do |u|%>
<p>
<%=debug(u.email)%>
</p>
<% end %>
答案 0 :(得分:3)
做一些类似的事情:
class User < ActiveRecord::Base
has_many :emails
has_one :primary_email, :class_name => 'Email',
:conditions => { is_primary: 1 }
end
然后您可以直接致电user.primary_email
# your controller
def prospective_user
@users = Account::User.includes(:primary_email).where(:status => 0)
end
# your view
<% for user in @users %>
<%= user.primary_email %>
<% end %>