Ruby on rails 在Rails中,在创建和使用验证之前,如何保持
我的代码如下:Ruby on rails 在Rails中,在创建和使用验证之前,如何保持,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我的代码如下: validates :user, presence: true before_create :set_user def set_user self.user = current_user end 我知道before_create不起作用,但我需要before_create获取用户数据。您只能在需要的操作上使用before_action助手 before_action :set_user, only: :create 可以使用数组对更多操作执行此操作,也可以使用exc
validates :user, presence: true
before_create :set_user
def set_user
self.user = current_user
end
我知道before_create不起作用,但我需要before_create获取用户数据。您只能在需要的操作上使用before_action助手
before_action :set_user, only: :create
可以使用数组对更多操作执行此操作,也可以使用except::some_阶段排除阶段 您可以在验证之前完成,但老实说,我认为这也是错误的解决方案
我会通过协会创造一切
class User
has_one :foo
has_many :bars
end
在控制器中
对于has_one:
对于许多人来说:
我猜代码在模型中,而不是在控制器中,他的问题是在调用回调之前启动验证。我的用户数据可能为零,我只想记录真实的用户数据,所以我需要验证。它需要在create中,而不是在new中真正的帮助。@Swards应该在两个中都有。我只会将它放在create中。它应该在控制器中设置,就像您所做的那样。你为什么要把它放在新的呢?嗯,我可能会考虑做一个之前的行动,我只是在上面举例说明,使用它通过协会是的-没有理由把它放在新的。除非你想把它放在表单中,但是我们想在控制器中设置的列。
def new
@foo = current_user.build_foo
end
def new
@bar = current_user.bars.new
end