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 に答える