2016-05-24 4 views
1

私はレール4を使用しています。私は引用符を誰かのセッション全体で見ることができるようにする必要がありますが、ログインする必要はありませんが、他の誰かのセッションがその見積もりを見ることができませんでした。アイデアは、私が彼らに与えた見積もりを見て、その見積もりをPDFとしてダウンロードできるということです。ここに私のコントローラーにあるものの本質はありますが、それは機能しません。 = @ client.idが、私が作成したアクションまたはshowアクションでそれを行うかどうかわからないです:[quote_id]Rails 4 - セッション変数を設定して、そのセッション中にのみページを表示できるようにします。

class ClientsController < ApplicationController 
    before_filter :check_guest, :only => :show 
def check_guest 
    # # if user isn't logged in 
    if current_user.nil? 
    # # if user has already viewed, redirect 
    # if session[:viewed] == true 
    #  flash[:alert] = "You can only view a quote once. Please resubmit your information." 
    #  redirect_to root_path 
    # # if user hasn't viewed, allow access, but flag as having viewed 
    # else 
    #  session[:viewed] = true 
    # end 
    if session[:quote_id] == params[:id] # where params[:id] is the quote ID 
     flash[:alert] = "Allow" 
    else 
     flash[:alert] = "Dont Allow" 
    end   
    end 
end 

私は、変数のセッションを設定する必要があります想像します。どちらの場所に置いても、コード全体が機能しません。どんな助けでも大歓迎です。ありがとうございました。

答えて

0

私は2つのことをする必要がありました。

まず、セッション変数をcreateのLASTアクションとして設定します。

def create 
....some actions 
session[:quote_id] = @client.id 
end 

次に、params IDを整数に変換して正しく評価する必要がありました。

session[:quote_id] == (params[:id].to_i) 
関連する問題