用下面的解决方案进行更新会产生新的错误。Rails 3 noob - 填充数组的难度
用户邀请他人审阅他们的工作。为了跟踪这个,邀请表具有reviewer_id和reviewee_id字段。该模型包含:
belongs_to :user
has_many :users
要显示所有邀请的用户,我们首先得到所有的邀请:
@invitations = Invitation.where("reviewee_id = ?", current_user.id).select(:reviewer_id).order("updated_at")
然后我们得到了所有谁被邀请的用户(这部分是错的)
@reviewers = []
@invitations.each do |i|
@reviewers << User.where("id = ?", i.reviewer_id)
end
该电流溶液产生以下:
undefined method `first_name' for []:ActiveRecord::Relation
我做了下面的代码测试,看看是什么@reviewers:
<% @reviewers.each do |r| %>
<%= r.id %><br>
<% end %>
,而不是返回它返回的id:
2173491700
2173491200
2173490540
所以数组是没有得到适当的填充。
非常感谢您的帮助和对特定代码的感激。
谢谢!我得到以下错误,“Mysql2 ::错误:操作数应该包含1列:选择'用户'*从'用户'在哪里(id = 23,24,25)” – Jay 2011-05-24 12:44:19
@Jay - 你应该做的:'@reviewers = User.where(:id => reviewer_ids)' – Mischa 2011-05-24 12:51:42
现在它出现零。啊。感谢你的帮助。 – Jay 2011-05-24 13:12:17