Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 4、gem保护的_属性、精炼CMS和设计之间的冲突_Ruby On Rails_Ruby_Devise_Refinerycms - Fatal编程技术网

Ruby on rails Rails 4、gem保护的_属性、精炼CMS和设计之间的冲突

Ruby on rails Rails 4、gem保护的_属性、精炼CMS和设计之间的冲突,ruby-on-rails,ruby,devise,refinerycms,Ruby On Rails,Ruby,Devise,Refinerycms,我们刚刚启动了一个新的Rails 4站点,我们决定使用RefineryCMS来实现其中的一部分。然后,我还安装了Desive,用于炼油厂CMS未涵盖的站点部分 因为一些RefineryCMS插件是为Rails 3编写的,所以我们必须使用protected_attributes gem,它提供了一个平滑的升级路径 我们的用户模型最初是这样的: class User < ActiveRecord::Base # Include default devise modules. Others

我们刚刚启动了一个新的Rails 4站点,我们决定使用RefineryCMS来实现其中的一部分。然后,我还安装了Desive,用于炼油厂CMS未涵盖的站点部分

因为一些RefineryCMS插件是为Rails 3编写的,所以我们必须使用protected_attributes gem,它提供了一个平滑的升级路径

我们的用户模型最初是这样的:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable         
end
但我已经把这两个都填上了。所以我想这可能是大规模作业的问题。因此,我在用户模型中添加了以下内容:

  attr_accessible :email, :password, :password_confirmation, 
                  :remember_me, :first_name, :last_name, :profile_name
所以现在我有:

class User < ActiveRecord::Base

  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable         

  attr_accessible :email, :password, :password_confirmation, 
                  :remember_me, :first_name, :last_name, :profile_name

end
我完全按照这里的建议:

这对我来说没有任何改变

我认为我没有自定义属性,但我们确实安装了RefineryCMS。我不确定它关于用户模型的想法是否与该设备的尝试相冲突。我将如何测试以查看正在使用的模型?路由属于设备,因此我假设设备代码将控制这种情况

[更新]

嗯,这至少让我犯了一个不同的错误:

def configure_permitted_parameters
  devise_parameter_sanitizer.for(:sign_up) do |u|
    u.permit(:email,:password,:password_confirmation)
  end
end

现在我有一个路由错误

您可以在发出请求时从日志中添加信息(在开发中,它将在log/development.log中)。我认为“配置允许的参数”解决了这个问题。是的,在日志中,行“Unpermitted parameters:email”表示不允许使用此参数。在代码中允许它应该可以正常工作。
Started GET "/users/sign_up" for 127.0.0.1 at 2015-03-18 23:09:25 -0400
Processing by Devise::RegistrationsController#new as HTML
  Rendered devise/shared/_links.html.erb (0.3ms)
  Rendered devise/registrations/new.html.erb within layouts/application (3.6ms)
  Rendered vendor/bundle/ruby/2.1.0/bundler/gems/refinerycms-11f8d1eeb45e/core/app/views/refinery/_html_tag.html.erb (0.1ms)
  Rendered refinery/_site_bar.html.erb (0.3ms)
Completed 200 OK in 25ms (Views: 22.6ms | ActiveRecord: 0.0ms)


Started POST "/users" for 127.0.0.1 at 2015-03-18 23:09:41 -0400
Processing by Devise::RegistrationsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"lERPLieT6htcLhC8yqBq00/6mz2AAfYzrFjTFEJ2lbg=", "user"=>{"email"=>"lawrence@krubner.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
Unpermitted parameters: email
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
  Rendered devise/shared/_links.html.erb (0.4ms)
  Rendered devise/registrations/new.html.erb within layouts/application (6.2ms)
  Rendered vendor/bundle/ruby/2.1.0/bundler/gems/refinerycms-11f8d1eeb45e/core/app/views/refinery/_html_tag.html.erb (0.1ms)
  Rendered refinery/_site_bar.html.erb (0.3ms)
  Rendered _login.html.erb (0.1ms)
Completed 200 OK in 141ms (Views: 40.7ms | ActiveRecord: 0.2ms)
def configure_permitted_parameters
  devise_parameter_sanitizer.for(:sign_up) do |u|
    u.permit(:email,:password,:password_confirmation)
  end
end