【问题标题】:Why does strong_parameters not work when I upgrade from Rails 3 to Rails 4?当我从 Rails 3 升级到 Rails 4 时,为什么 strong_parameters 不起作用?
【发布时间】:2013-06-25 17:56:32
【问题描述】:

我有以下几点:

class PhotoLibrariesController < ApplicationController

  def create
    @photo_library = PhotoLibrary.new(photo_library_params)

    if @photo_library.save
      respond_to do |format|
        format.html { redirect_to photo_libraries_path }
        format.js
      end
    else
      flash[:alert] = 'Photo Library not created successfully'
      render :new
    end
  end

  def new
    @photo_library = PhotoLibrary.new
  end

  def index
    @photo_libraries = PhotoLibrary.all
  end

  private

  def photo_library_params
    params.require(:photo_library).permit( :title )
  end
end

这总是会导致:

WARNING: Can't mass-assign protected attributes for PhotoLibrary: title
    app/controllers/photo_libraries_controller.rb:35:in `create'

我在这里做错了什么?为什么 strong_parameters 似乎不起作用?

【问题讨论】:

  • 您是否从 photo_library 中删除了 attr_accessible?
  • 是的,模型里没有……

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

我认为您需要在config/application.rb 中删除或设置为 false 的以下配置

config.active_record.whitelist_attributes = false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多