@item = Item.find(params [:id])、これは私のログオンしているすべてのユーザーの値を返します。ログインしたユーザーのIDアイテムの関数をuser_idに従属させるにはどうすればいいですか?
0
A
答えて
2
あなたの質問を理解するのに少し問題があるので、質問を誤解している場合は事前にお詫びします。
現在ログインしているユーザーに属しているアイテムのみに検索を制限する方法をお探しですか?
この最初のは、このような何か項目とユーザとの間の関連付けを必要とします。
:あなたが現在current_user
を使用しているユーザでログインしてアクセスできると仮定し、その後
class User < ActiveRecord::Base
has_many :items
end
class Item < ActiveRecord::Base
belongs_to :user
end
を、あなたはそうのような検索を制限することができます
@item = current_user.items.find(params[:id])
編集:あなたはsession[:user_id]
としてセッションに保存されているのuser_idを持っている場合は、次の操作を行うことができます
@user = User.find(session[:user_id])
@item = @user.items.find(params[:id])
いずれにしても、手順は同じです。有効なユーザーオブジェクトで開始し、itemsリレーションを使用して、そのユーザーに関連付けられている項目に範囲を制限します。
トピックから少し外れていると、セッションに直接user_idを格納することを避けたいかもしれません。スプーフィングが非常に簡単で、不要なアクセス(別の質問の会話)が可能です。
関連する問題
- 1. robots.txtに従うにはどうすればいいですか
- 2. 機能フラグを貨物の従属関係にパスするにはどうすればよいですか?
- 3. user_idをnested_resourceモデルに渡すにはどうすればいいですか?
- 4. AVPlayerで複数のアイテムを再生させるにはどうすればいいですか?
- 5. HTML/javascriptで従属変数を応答して更新するにはどうすればよいですか?
- 6. Angular 2プロジェクトに「従来の」Js関数を追加するにはどうすればよいですか?
- 7. tf.gradients()関数を複数のgpuで動作させるにはどうすればいいですか?
- 8. M2OからO2Oまで逆の関係に従うにはどうすればいいですか?
- 9. robots.txtファイルに従わないWebクローラをクラッシュさせるにはどうすればよいですか?
- 10. 辞書のuser_idとモデルのuser_idはどのように接続すればよいですか?
- 11. クラスを私のペイント関数に追加させるにはどうすればいいですか?
- 12. QListWidgetのアイテムをいくつかのアイテムにドロップするにはどうすればいいですか?
- 13. 従属ドロップダウンリストの以前のオプションの表示を停止するにはどうすればよいですか?
- 14. この関数を古いjqueryで動作させるにはどうすればよいですか?
- 15. QGridLayoutにアイテムを配置するにはどうすればいいですか?
- 16. MATLABでグラフの従属変数に関するステートメントを実行するにはどうすればよいですか?
- 17. このJavascript/jQuery関数からHTML属性にアクセスするにはどうすればよいですか?
- 18. EL関数呼び出しを複合属性に渡すにはどうすればいいですか?
- 19. 関数と値をonchange HTML属性に渡すにはどうすればいいですか?
- 20. 2つの従属汎用インターフェイスを定義するにはどうすればよいですか?
- 21. React Native ListViewにアイテムを集中させるにはどうすればいいですか?
- 22. 従属ジョブ間で実行開始を設定するにはどうすればよいですか?
- 23. ObservableCollectionのアイテムを更新するにはどうすればいいですか?
- 24. jQuery - Ajax関数の遅延を成功させるにはどうすればいいですか?
- 25. 従業員を受注に参加させるにはどうすればよいですか?
- 26. JScrollPaneスクロールを入力フォーカスに追従させるにはどうすればよいですか?
- 27. クラスに属さない属性を選択するにはどうすればよいですか?
- 28. 関数を実行するにはどうすればいいですか?
- 29. タイプ関数を実装するにはどうすればいいですか?
- 30. ハッシュ関数を実行するにはどうすればいいですか?
私が欲しいものですが、あなたが書いたコードを使用すると、このエラーは '未定義のローカル変数またはメソッド' current_user 'for#' –
ItemsControllerロジックを投稿できますか?解決策は、アプリケーションが認証をどのように処理するかによって異なります。ほとんどの認証方法は、現在ログインしているユーザーのための変数をコントローラに提供します。私が与えた例では、この変数は "current_user"でしたが、あなたのアプリケーションは別の規約を使用しているようです。 – Justin
私はあなたを理解しようとしていますが、自分のアプリケーションのユーザーのための機能は、セッション[:user_id] = user.idです –