gpt4 book ai didi

ruby-on-rails - 如何将 session 变量传递给 RoR 中的模型?

转载 作者:行者123 更新时间:2023-12-03 17:34:54 24 4
gpt4 key购买 nike

我之前在我的应用程序中使用了一个全局变量来传递信息。但是我遇到了一个问题,感谢这里的每个人都建议我将这些数据存储在与数据库的 session 中。

我试过了,但是我发现我无法访问Model中的 session 变量。我用谷歌搜索并知道这是模型的正常行为,RoR 不会将 session 变量传递给模型。

所以,我想在验证中使用该 session 变量以及 Controller ......

  • 如何传递值
    session 变量到模型?或
  • 我的还有其他方法吗
    用例?我需要一个变量存储
    一个值,在所有情况下都需要
    MVCs,应该是独立的
    不同并发用户之间。

  • 谢谢大家。 :)

    最佳答案

    如果我理解正确, session 变量会改变您验证模型的方式。我相信正确的解决方案如下:

    class Blog < ActiveRecord::Base
    attr_accessor :validate_title

    validate_presence_of :title, :if => :validate_title
    end

    class BlogsController < ApplicationController
    def new
    @blog = Blog.new
    @blog.validate_title = session[:validate_title]
    end
    end

    该代码尚未经过测试,但这就是想法。 if 参数可以是方法的名称,您可以在其中做任何您想做的事情。如果需要,您可以使用各种验证模式。例如:
    class Blog < ActiveRecord::Base
    attr_accessor :validation_mode

    validate_presence_of :title, :if => :validate_title

    def validate_title
    validation_mode == "full" or validation_mode == "only_title"
    end
    end

    class BlogsController < ApplicationController
    def new
    @blog = Blog.new
    @blog.validate_mode = session[:validate_mode]
    end
    end

    如需更多信息,请阅读 the guide on validation .

    关于ruby-on-rails - 如何将 session 变量传递给 RoR 中的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011479/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com