Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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 4 Rails 4-spree-2.1中涉及的强参数概念_Ruby On Rails 4_Spree_Ruby 2.0_Strong Parameters - Fatal编程技术网

Ruby on rails 4 Rails 4-spree-2.1中涉及的强参数概念

Ruby on rails 4 Rails 4-spree-2.1中涉及的强参数概念,ruby-on-rails-4,spree,ruby-2.0,strong-parameters,Ruby On Rails 4,Spree,Ruby 2.0,Strong Parameters,如何在spree-2.1+Rails4中为spree::user添加新字段 就像我以前的定制: ========================== Spree::User.class\u eval do attr_accessible :f_name, :l_name :gender validates :f_name, :presence => true, :length => {:maximum => 25} validates :l_name, :presence =&

如何在spree-2.1+Rails4中为spree::user添加新字段

就像我以前的定制: ==========================

Spree::User.class\u eval do

attr_accessible :f_name, :l_name :gender
validates :f_name, :presence => true, :length => {:maximum => 25}
validates :l_name, :presence => true, :length => {:maximum => 20}
private
 def spree_user_params
   params.require(:spree_user).permit(:f_name, :l_name)
 end

end
结束

具有强大参数的新工作: ================================

模块狂欢 UserRegistrationController.class_eval do

attr_accessible :f_name, :l_name :gender
validates :f_name, :presence => true, :length => {:maximum => 25}
validates :l_name, :presence => true, :length => {:maximum => 20}
private
 def spree_user_params
   params.require(:spree_user).permit(:f_name, :l_name)
 end

end
结束

即使它在回滚时不起作用


请告诉我您的意见。

最近对spree\u auth\u Desive进行了更改,允许您为spree::User设置允许的属性

这是相关的代码行:


您需要将f_name和l_name添加到Spree::PermittedAttributes.user_属性,如下所示:

# in an initializer
Spree::PermittedAttributes.user_attributes << :f_name
Spree::PermittedAttributes.user_attributes << :l_name
初始化器中的
#

Spree::PermittedAttributes.user_attributes@gmacdougall是正确的,但是我想指出的是,如果您在扩展中执行此操作,您可能希望通过装饰器执行此操作。您的扩展必须在用户通过生成器安装的初始值设定项中定义它,该生成器无法维护

# lib/spree/permitted_attributes_decorator.rb
Spree::PermittedAttributes.class_eval do
  @@user_attributes.push(:f_name, :l_name)
end

您可以为模块中的许多模型添加新属性。Spree控制器通过模块中包含的方法获取这些属性。

请使用4个空格缩进设置代码格式。它提供未经允许的参数:电子邮件、密码、密码确认。我希望在实际的spree\u auth\u装置-注册控制器中允许这些。spree::PermittedAttributes.user\u attributes.push:first\u name,:last\u name如何验证此方法的有效性?对于初始值设定方法,您可以
rails c
2.1.2:003>Spree::PermittedAttributes.user\u attributes=>[:email、:password、:password\u confirmation、:firstname、:lastname]
但是,对于装饰方法,您提到的属性没有显示如何覆盖注册视图的视图?