我之前在应用程序中使用了全局变量来传递信息。但我遇到了一个问题,感谢这里的每个人建议我将这些数据存储在数据库的会话中。
我尝试了一下,但发现无法访问Model中的session变量。我用谷歌搜索知道这是模型的正常行为,RoR 不会将会话变量传递给模型。
所以,我想在验证中使用该会话变量以及控制器......
如何传递的值
会话变量进入模型?或者
我的还有其他方法吗
用例?我需要一个变量存储
一个值,这是所有都需要的
MVC,并且应该是独立的
不同并发用户之间。
感谢大家。 :)
如果我理解正确的话,会话变量会改变您验证模型的方式。我相信正确的解决方案如下:
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
欲了解更多信息,请阅读验证指南.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)