0

別のモデルでcurrent_userにアクセスする必要がありました。私はグーグルでいくつかの解決策を見つけ、これを試しました

ただし、違いが 1 つだけあります。コントローラーにUser.current_userを設定していません。なぜ?

私が従った回答のように、ビューから2番目のモデルにデータを追加するのではなく、URLを介してデータをレンダリングします(open-uriを使用すると、取得しているcsvデータです)。
したがって、2 番目のモデルでは次のようにします。

Person.create(username: User.current_user.username)  

それは与えます:

NoMethodError: nil:NilClass の未定義のメソッド `username'

これは機能していません(これは明らかだと思います)。コンソールで User.current_user を実行すると、次のように表示されます。

1.9.3p448 :002 > User.current_user
=> nil

モデルから直接User.current_userにアクセスしていて、それが与えられない限りモデルは current_user を取得できないため、機能しないのはなぜだと思います。(右?)

しかし、ログインページからアクセスし、コントローラーで User.current_user を設定すると、これは間違いなく機能します。

しかし、url からデータを直接取得しているので、モデル自体で Person モデルの新しいエントリを直接作成しています。

では、User.current_user を設定するにはどうすればよいでしょうか。

これに対する回避策はありますか? 質問のタイトルの編集が必要です。

4

1 に答える 1