Ruby on Rails 3,我试图存储一个变量,其中包含具有以下属性的记录:参加“是”的值,但也有一个属于一个reseller_id的user_id。
转销商有很多用户。证书属于一个用户。我可以根据证书中的:user_id属性获取变量以存储用户和/或代理商,但无法根据证书属性值将其存储为“是”或“否”
控制器定义变量:
@certs = Certificate.all
@reseller_users_incerts = []
@trained_user_id = []
@certs.each do |user|
#if user.find_by_attend("Yes")
@trained_user_id << user.user_id #all user ids in certification table
id = user.user_id
if u = User.find(id)
@reseller_users_incerts << u.reseller_id #all reseller ids from certifications table
end
#end
end
@reseller_users_incerts为我提供了保存证书记录的用户的所有经销商的ID。我还需要根据证书存储变量:参加“是”或“否”的值
这是观点:
<% if @reseller_users_incerts.include?(reseller.id) %>
<td><%= "Yes" %></td>
<% else %>
<td><%= "No" %></td>
<% end %>
证书模型:
class Certificate < ActiveRecord::Base
attr_accessible :attend, :pass, :user_id
belongs_to :user
validates :user_id, presence: true
end
谢谢
答案 0 :(得分:2)
你的内部阻塞令人困惑,因为你使用user
作为一个循环变量,当它真的是Certificate
时。更改该变量并假设attend
确实是Certificate
的属性,然后使用现有结构引入此检查将如下所示:
@certs.each do |cert|
if cert.attend == "Yes"
@trained_user_id << cert.user_id #all user ids in certification table
id = cert.user_id
if u = User.find(id)
@reseller_users_incerts << u.reseller_id #all reseller ids from certifications table
end
end
end