だから私は困惑しています。うまくいけば親切な魂が私を助けることができます。アクションを実行したユーザーの特定のボタンを表示するロジックの一環として、操作されたオブジェクトのIDを "prayed_for"というセッション配列に格納します。 (この問題のユニークな部分は、セッションで扱われ、データベースに保持されている配列ではありません)私のコントローラのshowアクションでは、要求されているエントリの現在のIDがセッション配列 "prayed_for"。このブール値をセッション変数@already_prayed_for
に割り当てます。以下はそれに対する論理です:セッションの配列にRails 3.1のビューからアクセスできない
@already_prayed_for = (session[:prayed_for] ||= []).include? params[:id]
しかし、ここに問題があります:私はこれを部分的に評価することはできません。例えば、次の(HAMLで)評価しようとすると、 "entry"は手元にあるエントリを表す変数であり、 "id"はidであり、これはセッション "prayed_for"変数に格納されなければならず、常に評価されますfalse
へ:
-if (session[:prayed_for] ||= []).include? entry.id
私はidがセッション配列に存在するか否かを評価するときに、私は私の部分で何かを間違って評価することができるという結論に来ています。さらに、この同じコンセプトはコントローラーアクションで完全に機能しました(しかし今回はこのソリューションを使用することはできませんが、部分的に評価する必要があります)ApplicationHelper
でも失敗しました。この問題を解決するための助けがありがとうございます!
UPDATE: ここで私は別のアクションでのセッションを設定するコードは次のとおりです。entry.id
はFixnumかである一方、
if @entry.save
(session[:prayed_for] ||= []) << params[:id]
end
また、あなたがセッションを設定するコードの行(複数可)を投稿することができますか? – bricker
これらのコード行については、私のアップデートをご覧ください:) –