Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails在模型中设置不可访问属性的最佳实践_Ruby On Rails_Model_Rspec_Callback - Fatal编程技术网

Ruby on rails Rails在模型中设置不可访问属性的最佳实践

Ruby on rails Rails在模型中设置不可访问属性的最佳实践,ruby-on-rails,model,rspec,callback,Ruby On Rails,Model,Rspec,Callback,我是Rails的新手,我在考虑一个好的解决方案,在保存模型之前在模型中设置受保护的属性,但我找不到合适的方法 假设我有属于公司的用户,这些公司可以有很多客户。在保存新客户端之前,我想设置它的company\u id,从会话中存储的当前用户company\u id获取它(我正在使用designe) 我在考虑使用一个模型回调,就像之前的\u create或者其他什么,但是我后来意识到我的Rspec模型测试可能会失败,因为在运行它们的时候没有当前的\u用户 是否有设置必须自动设置的参数的最佳实践 提前

我是Rails的新手,我在考虑一个好的解决方案,在保存模型之前在模型中设置受保护的属性,但我找不到合适的方法

假设我有属于公司的用户,这些公司可以有很多客户。在保存新客户端之前,我想设置它的company\u id,从会话中存储的当前用户company\u id获取它(我正在使用designe)

我在考虑使用一个模型回调,就像之前的\u create或者其他什么,但是我后来意识到我的Rspec模型测试可能会失败,因为在运行它们的时候没有当前的\u用户

是否有设置必须自动设置的参数的最佳实践


提前谢谢

只需在控制器中设置即可

def create
  @new_user = User.new(params[:user])
  @new_user.company = current_user.company # <-- here
  if @new_user.save
    # ...
  else
    # ...
  end
end
def创建
@new_user=user.new(参数[:user])

@new|user.company=current|u user.company#为了保持上下文,可以将一个块传递给new:
user.new(params[:user]){u|u.company=current|u user.company}
是的,我认为这是正确的方法,使模型独立于设计功能。。。非常感谢您的回复!