0

我的应用程序有一个类型,它在流程中始终如一地进行,类型编号为 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

4

1 回答 1

0

您必须先获取要编辑的特定记录。如果它发生在用户身上,如果你有一个像 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

或类似的东西。

我知道这很粗糙,但我希望这能为您指明正确的方向。

于 2012-08-13T22:52:33.630 回答