我有一个表 users,一个表 roles(有一列叫 desc),其中表 users 有外键 role_id。 现在我想在 user 的 show.html.erb 中,显示 role_id 相对应的 desc,请问我的代码该如何写? 谢谢!
<%= f.select :role_id, Role.select([:id, :desc]).map{|r| [r.desc, r.id]} %>
#1 楼 @miclle 不成功呢,以下是 log:
#2 楼 @jxs471494539 你确定你的 roles 表里有 desc 字段么?
#3 楼 @miclle 有的,你看:
#3 楼 @miclle 我已经解决了,这样做,谢谢你的帮助。。。
<%= f.text_field :role_id, value: Role.find(@user.role_id).desc %>
#5 楼 @jxs471494539 我看错了,以为你是要在 new.html.erb 里去选择一个 role
如果你只是在 show.html.erb 里显示 role 信息,那直接 <%= @user.role.desc %> 即可
class User < ActiveRecord::Base belongs_to :role end
#6 楼 @miclle 是的,这样也 OK
我建议你这么写
class User < ActiveRecord::Base belongs_to :role delegate :desc, to: :role, prefix: true, allow_nil: true end
在 show.html.erb 里显示 Role 信息 <%= @user.role_desc %>