需要检查是否设置了代码会话

时间:2014-04-21 08:08:00

标签: ruby-on-rails ruby ruby-on-rails-4 devise

您好我有一个表单,其中用户被发送邀请代码..一切正常..哈希码使用会话设置..

现在我希望某些用户在没有代码的情况下注册。如果没有设置哈希码,我想设置条件..但是我无法解决它...任何人都可以给我任何想法来解决这个问题?

这是我需要设置的操作,如果会话有代码不是..我尝试使用if循环,但我收到错误

class VendorsController < ApplicationController

  def invited_new
    @user_invitation = UserInvitation.where(hash_code: session[:hash_code]).first
    #raise ArgumentError "Cannot find invitation with hash_code #{session[:hash_code]}" unless @user_invitation.present?
    @vendor = Vendor.new(user: current_user, vendor_type: @user_invitation.invitation_type)
    @vendor.build_address
  end
end

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

class VendorsController < ApplicationController

  def invited_new
    if session[:hash_code] && UserInvitation.where(hash_code: session[:hash_code]).any?
      # logic for users with hash_code
    else
      #logic for users without hash_code
    end
  end

end

如果有hash_code(一个或多个)hash_code

,则应首先检查会话中UserInvitation是否为{{1}} {{1}}