私は、User、Profile、Organization Requestのモデルを持っています。団体は次のとおりです。Rails関連するメソッドにアクセスするための4連鎖モデルの関連付け
ユーザー
has_one :profile, dependent: :destroy
has_one :organisation_request, through: :profile
accepts_nested_attributes_for :organisation_request
プロフィール
belongs_to :user
belongs_to :organisation
組織私のユーザモデルで要求
belongs_to :profile
# belongs_to :user#, through: :profile
belongs_to :organisation
、私は形式に使用FULL_NAME(というメソッドを持っていますユーザの名前の提示。
私はorganisation_requestsモデルでそのfull_nameメソッドにアクセスしようとしています。
私は私の組織で次のメソッドを書くことによってモデルを要求することをやろうとしている:
<%= link_to orgReq.related_user_name, organisation_request.profile_path(organisation_request.profile.id) %>
:私は私の組織でこれを使用しようとすると
def related_user_name
self.profile.user.full_name
end
はこのように、インデックスを要求します
私が言うエラーが出る:私はレールの共同でこのアイデアを使用しようとすると
undefined method `user' for nil:NilClass
をnsole:
o = OrganisationRequest.last
OrganisationRequest Load (0.4ms) SELECT "organisation_requests".* FROM "organisation_requests" ORDER BY "organisation_requests"."id" DESC LIMIT 1
=> #<OrganisationRequest id: 2, profile_id: 1, organisation_id: 1, created_at: "2016-08-01 22:48:52", updated_at: "2016-08-01 22:48:52">
2.3.0p0 :016 > o.profile.user.formal_name
Profile Load (0.5ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."id" = $1 LIMIT 1 [["id", 1]]
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]]
=> " John Test"
コンセプトはコンソールで動作するようですか? 誰かが間違っていた場所を見ることができますか?
私はこれを試しましたが、エラーメッセージを表示します –
Mel
のための未定義のローカル変数またはメソッド 'user '' 'Profile'と' delegate:user_full_name、〜に 'delegate:full_name to:user、prefix:true、allow_nil: ::profile、prefix:false、allow_nil:true'を返します。 – dpedoneze