Search code examples
activerecordruby-on-rails-4mass-assignmentstrong-parameters

Rails 4 strong parameters ActiveModel::ForbiddenAttributesError


For some reason in my current controller I am getting ActiveModel::ForbiddenAttributesError even though I believe I am using strong parameters just fine. Albeit I am using permit! for the time being to permit all model attributes. See code below, what am I missing

class HeuristicsController < ApplicationController

    def index
        @heuristics         = Heuristic.order(:name).page params[:page]
        @heuristic      = Heuristic.new
    end

    def create
        @heuristic = Heuristic.new(params[:heuristic])
        if @heuristic.save
            redirect_to action: 'index', :flash => {:success => "New heuristic created!" }
        else
            render 'new'
        end
    end

    def new
        @title              = "Heuristic"
        @heuristic          = Heuristic.new
    end

    private

    def heuristic_params
        params.require(:heuristic).permit!      
    end

end

Solution

  • i think you did not fully understand the way that strong-params work...

    you have a method

    def heuristic_params
        params.require(:heuristic).permit!      
    end
    

    and you are not using it

    Heuristic.new(params[:heuristic])