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