我的应用程序有一个类型,其通过流始终携带并且类型编号为1,2,3或4。使用before_save存储一个值在db
以我application_controller.rb
,我有以下代码:
before_filter :record_type
,然后在下面,在protected
:
def record_type
field should go here = @type
end
我很困惑如何注意User
表中的字段。这只是User.type = @type
?
我的应用程序有一个类型,其通过流始终携带并且类型编号为1,2,3或4。使用before_save存储一个值在db
以我application_controller.rb
,我有以下代码:
before_filter :record_type
,然后在下面,在protected
:
def record_type
field should go here = @type
end
我很困惑如何注意User
表中的字段。这只是User.type = @type
?
您必须首先获得您想要编辑的特定记录。如果它发送给用户,如果你有像current_user这样的辅助方法(设计和类似的认证系统提供),你可以使用它。
你只想做current_user.type = @type
但是,这是不是真的与你现在有什么before_save。如果您在保存用户记录时尝试存储它,请将您的过滤器移至用户模型。做类似
before_save :add_type_to_user
def add_type_to_user
self.type = your_type_value_here
end
如何获得您的类型值的模型将取决于你从哪里得到它。您可以在application_controller中使用before_filter来设置@@变量。当我在模型中时,我有时会使用这个技巧来获取当前用户。你只需要为@@变量创建一个getter和setter。你只需要做这样的事情:
self.type = User.get_current_type
或类似的东西。
我知道这很粗糙,但我希望这可以指引您朝着正确的方向发展。
你可以将它存储在会话中吗? (User.type = @type没有多大意义)。你为什么要将应用类型存储在用户表中?什么是“类型”? – Robin 2012-08-13 22:08:08
它已存储在会话中,我已将它添加到控制器,以便:在User.new中键入type = @type,该工作,是吗? – 2012-08-13 22:10:06
你应该更清楚地解释你的最终目标,以获得良好的答案。 – Robin 2012-08-13 22:24:10