Session Rails 4-设置会话变量,以便用户只能在该会话期间查看页面
我使用的是rails 4,希望提供一个包含一些个人信息的即时报价。我需要使某个人的整个会话都可以查看报价,而不让他们登录,但其他会话无法查看该报价。这个想法是,他们可以看到我给他们的报价,并下载作为PDF格式的报价。这是我的控制器的精髓——但它不起作用Session Rails 4-设置会话变量,以便用户只能在该会话期间查看页面,session,ruby-on-rails-4,session-variables,Session,Ruby On Rails 4,Session Variables,我使用的是rails 4,希望提供一个包含一些个人信息的即时报价。我需要使某个人的整个会话都可以查看报价,而不让他们登录,但其他会话无法查看该报价。这个想法是,他们可以看到我给他们的报价,并下载作为PDF格式的报价。这是我的控制器的精髓——但它不起作用 class ClientsController < ApplicationController before_filter :check_guest, :only => :show def check_guest # # if
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
class客户端控制器:show
def check_客人
##如果用户未登录
如果当前_user.nil?
##如果用户已查看,则重定向
#如果会话[:已查看]==true
#flash[:alert]=“您只能查看一次报价。请重新提交您的信息。”
#将\重定向到根\路径
##如果用户尚未查看,则允许访问,但标记为已查看
#否则
#会话[:已查看]=真
#结束
如果会话[:quote_id]==params[:id]#其中params[:id]是quote id
闪存[:警报]=“允许”
其他的
闪存[:警报]=“不允许”
结束
结束
结束
我想我需要设置变量session[:quote_id]=@client.id,但我不确定是在create操作还是show操作中这样做。无论我放在哪一个地方,整个代码都不起作用。非常感谢您的帮助。谢谢。我需要做两件事 首先,将会话变量设置为create中的最后一个操作
def create
....some actions
session[:quote_id] = @client.id
end
接下来,我必须将params ID转换为整数,以便正确计算
session[:quote_id] == (params[:id].to_i)
我需要做两件事 首先,将会话变量设置为create中的最后一个操作
def create
....some actions
session[:quote_id] = @client.id
end
接下来,我必须将params ID转换为整数,以便正确计算
session[:quote_id] == (params[:id].to_i)