我的应用程序有一个类型,它在流程中始终如一地进行,类型编号为 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
?
我的应用程序有一个类型,它在流程中始终如一地进行,类型编号为 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
?
您必须先获取要编辑的特定记录。如果它发生在用户身上,如果你有一个像 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
或类似的东西。
我知道这很粗糙,但我希望这能为您指明正确的方向。