我的应用程序有一个类型,它通过流程一致地携带,类型编号为1,2,3或4.
在我的application_controller.rb
中,我有以下代码:
before_filter :record_type
然后低于protected
:
def record_type
field should go here = @type
end
我对如何记下User
表中的字段感到困惑。它只是User.type = @type
?
答案 0 :(得分:0)
您必须先获取要编辑的特定记录。如果它继续用户,如果你有一个帮助方法,如current_user(设计和类似的身份验证系统提供),你可以使用它。
你只想做current_user.type = @type
但这不是真正的on_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
或类似的东西。
我知道这很粗糙,但我希望这能指出你正确的方向。