0

使用 has_one 在表单中创建单选按钮时遇到问题

模型

Class User
has_one :role
accepts_nested_attributes_for :role

Class Role
attr_accessible :name
belongs_to :user

控制器

@user = build_role

单选按钮的表单

<div class="field">
 <% Role.offset(1).all.each do |role_fields| %>
  <%= radio_button_tag "user[role_fields_id][]", role_fields.id, @user.role_id == role_fields.id %>
  <%= role_fields.name %>
 <% end %>
</div>

得到错误

undefined method `role_id' for #<User id: nil, name: nil, created_at: nil, updated_at: nil>

我确定我在控制器中设置了关系,为什么这不起作用?

4

1 回答 1

0

我认为这一行:

<%= radio_button_tag "user[role_fields_id][]", role_fields.id, @user.role_id == role_fields.id %>

应更正此:

<%= radio_button_tag "user[role_fields_id][]", role_fields.id, @user.role.id == role_fields.id %>

我希望这会有所帮助。

于 2013-01-07T23:47:02.317 回答