私は Rails を約 1 か月しか学んでいないので、ここでの答えが本当に単純なのか、それとももっと複雑なのかはわかりません。
私は 2 つのモデルを持っています。それらを「SpecialUser」と「User」と呼びます。
私の User モデルは次のようになります。
class User < ActiveRecord::Base
has_one :special_user
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :roles, :user_type, :address_1, :address_2, :city, :state, :zip
(&c.)
私の SpecialUser モデルは次のようになります。
class SpecialUser < ActiveRecord::Base
belongs_to :user
(&c.)
https://github.com/bernat/best_in_placeを使用して、SpecialUser の情報を編集するためのフォームを作成しています。以前は、SpecialUser 用に別の「住所」属性がありましたが、最近、完全な住所 (address_1、address_2、都市、都道府県、郵便番号など) を指定し、それをユーザーに入れることを支持して、通常のユーザーができるようにしました。アドレスもあります。:)
ただし、これを実行しようとすると:
<% # best_in_place_if can?(:edit, @super_user), @super_user.user, :address_1 %>
次のエラーが表示されます。
NoMethodError in Project_professionals#show
undefined method `user_path' for #<#<Class:0x0000013457fb90>:0x00000132e1fdd8>
とに置き換え@super_user.user
てみましたが、まったく同じエラーが発生します。User.find(@super_user.user)
User.find(@super_user.user_id)
私がする時
<%= @super_user.user.address_1 %>
できます!
best_in_place のものを読んだ後でも、答えを見つけるのにまだ苦労しています。:(それが私たちが使用しているgemの制限なのか、それとも私が何か不足しているのかはわかりません.