別のモデルで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 を設定するにはどうすればよいでしょうか。
これに対する回避策はありますか? 質問のタイトルの編集が必要です。