无法批量分配受保护的元素:crop_x、crop_y、crop_w、crop_h。设计和 jCrop。 Ruby on Rails [关闭]

Posted

技术标签:

【中文标题】无法批量分配受保护的元素:crop_x、crop_y、crop_w、crop_h。设计和 jCrop。 Ruby on Rails [关闭]【英文标题】:Can't mass-assign protected elements: crop_x, crop_y, crop_w, crop_h. Devise and jCrop. Ruby on Rails [closed] 【发布时间】:2012-11-25 02:19:56 【问题描述】:

我正在关注 RyanBates 关于使用 jCrop http://railscasts.com/episodes/253-carrierwave-file-uploads 裁剪用户头像的截屏视频。 Ryan 从头开始​​使用身份验证系统,但我为此使用了 Devise

为了将用户带到处理裁剪的 crop.html.haml,我通过在 app/controllers 中创建此文件并指定 registration_controller.rb 覆盖了 Devise 的 registration_controller.rb /p>

routes.rb

devise_for  :users, path_names:  sign_in: "login", sign_out: "logout" , 
          controllers:  registrations: "registrations" 

我在 registration_controller.rb 中的更新操作如下所示

def update
if resource.update_with_password(resource_params)
    if params[:user][:avatar].present?
    render 'crop'
  else
    expire_session_data_after_sign_in!
    redirect_to users_path, notice: "User updated."
  end
 else
    clean_up_passwords(resource)
    flash[:notice] = flash[:notice].to_a.concat resource.errors.full_messages
    session[:subscription] = resource
  redirect_to root_path
 end

结束

当我点击“裁剪”时导致以下错误:

ActiveModel::MassAssignmentSecurity::Error in UsersController#update

Can't mass-assign protected attributes: crop_x, crop_y, crop_w, crop_h

user.rb 我有

attr_accessor :crop_x, :crop_y, :crop_w, :crop_h

我也试过放到attar_accesible里面,但是不行

【问题讨论】:

【参考方案1】:

你似乎在“attar_accesible”中有两个拼写错误,试试attr_accessible 看看是否有效。

【讨论】:

它有效!奇怪,我没注意到

以上是关于无法批量分配受保护的元素:crop_x、crop_y、crop_w、crop_h。设计和 jCrop。 Ruby on Rails [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

嵌套受保护模型的“无法批量分配受保护属性”

无法批量分配受保护的属性:配置文件,

无法批量分配受保护的属性

“警告:无法批量分配受保护的属性”

嵌套表单触发“无法批量分配受保护的属性”警告

ActiveAdmin:无法批量分配受保护的属性:电子邮件、密码、密码确认