对于除了这个新手之外的任何人都很容易,我敢肯定,但我无法在任何地方找到答案。我有一个用户模型和一个角色模型,在users表中有role_id;我想在我的用户索引页面上显示驻留在角色表中的实际角色(管理员,访客等) index.html.erb的相关部分:
<% @users.each do |user| %>
<tr>
<td><%= user.username %></td>
<td><%= user.email %></td>
<td><%= user.role_id %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
那么我应该代替user.role.id?
role.rb:
class Role < ActiveRecord::Base
end
user.rb:
class User < ActiveRecord::Base
has_one :role
end
我正在使用Rails 3,fwiw。
TIA
答案 0 :(得分:2)
您的模型确实配置不正确,但我可以理解您想要的以下问题。
class User < ActiveRecord::Base
belongs_to :role
end
class Role < ActiveRecord::Base
has_many :users
end
然后您可以执行以下操作:
<%= user.role.name_field %>
这将允许多个用户拥有相同的角色。而不是强制执行一对一的关系。不需要更改架构。