我正在尝试在Rails 4中创建一个应用程序。
我有个人资料模型。
我试图在该个人资料展示页面中显示用户的角色。
我有三种模式:
用户
rolify (which has a user_role join table)
作用
has_and_belongs_to_many :users, :join_table => :users_roles
belongs_to :resource, :polymorphic => true
资料
belongs_to :user
在我的个人资料展示页面中,我有:
<%= @profile.user.roles.each do |role| %>
<%= role.name.titlecase %> <span style= "margin-right: 30px"></span>
<% end %>
在节目视图中,我得到:
Manager [#<Role id: 9, name: "faculty_manager", resource_id: nil, resource_type: nil, created_at: "2016-01-16 08:06:55", updated_at: "2016-01-16 08:06:55">]
“经理”部分是唯一正确的部分。如何让显示页面不在角色表中列出所有其他属性?
答案 0 :(得分:0)
您有<%= @profile
而非<% @profile
,它将枚举数的结果放在视图中
<% @profile.user.roles.each do |role| %>
<%= role.name.titlecase %> <span style= "margin-right: 30px"></span>
<% end %>
如果您只想为每个角色提取name
,请执行此操作
<% @profile.user.roles.pluck(:name).each do |role_name| %>
答案 1 :(得分:0)
要以漂亮的表格视图格式设置您的节目页面,请在显示页面代码中执行以下操作:
错误是使用&lt;% = @ profile.user.roles.each do | role | %GT; 请注意=您使用的
<table class="table ld-margin-top-20">
<thead>
<tr>
<th>Manager ID</th>
<th>Manger Name</th>
<th>Manger Resource ID</th>
<th>Manger Resource Type</th>
</tr>
</thead>
<tbody>
<% @profile.user.roles.each do |role| %>
<tr>
<td> <%= role.id %></td>
<td> <%= role.name.titlecase %></td>
<td><%= role.resource_id %></td>
<td><%= role.resource_type %></td>
</tr>
<% end %>
</tbody>
</table>