活动模型禁止属性错误 [英] Active Model Forbidden attributes error

查看:178
本文介绍了活动模型禁止属性错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

会有人能帮助我理解这个错误。我想创建以下建筑物的Web应用程序的教程中轨的接触形式。我跟着步骤生成一条消息支架。然后,我修改了我的路线。接下来,它说把这个到消息控制器show动作。

 如果@ message.save方法
  闪光[:通知] ='为您的留言感谢
  的format.html {redirect_to时root_path}
 

我这样做,我收到以下错误 加载ActiveModel :: ForbiddenAttributesError在MessagesController#创建 加载ActiveModel :: ForbiddenAttributesError

这是我的消息控制器文件

 类MessagesController< InheritedResources ::基地
  高清节目
     如果@ message.save方法
      闪光[:通知] ='为您的留言感谢
      的format.html {redirect_to时root_path}
     结束
  结束
结束
 

我的路线文件如下

 #devise_for:用户
 

资源:做产品   资源:订单,只有:[新,:创建]   #tells轨需要产品ID号 结束

 #得到'页/付款

  获得首页/关于'

  获得信息/新

  得到'卖家'=> 产品#卖家

  得到的销售'=> 订单#销售

  得到'static_pages / productlanding

  得到内容/素食

  得到内容/果

  得到内容/组合

  获得订阅/新

  根'static_pages#家
 

解决方案

我设法用以下解决这!感谢所有帮助

 类MessagesController<的ApplicationController
  before_action:set_message,只有:[:显示,编辑,:更新:灭]

  #GET /消息
  #GET /messages.json
  高清指数
    @messages = Message.all
  结束

  #GET /邮件/ 1
  #GET /messages/1.json
  高清节目
  结束

  #GET /消息/新
  高清新
    @message = Message.new
  结束

  #GET /邮件/ 1 /编辑
  高清编辑
  结束

  #POST /消息
  #POST /messages.json
  DEF创建
    @message = Message.new(message_params)

    respond_to代码做|格式|
      如果@ message.save方法
        flash.now [:通知] ='谢谢您的留言!
        的format.html {redirect_to时root_path}
        format.json {渲染:表演,状态:创建,地点:@message}
      其他
        的format.html {渲染:新}
        format.json {渲染JSON:@ message.errors,状态:unprocessable_entity}
      结束
    结束
  结束

  #PATCH / PUT /邮件/ 1
  #PATCH / PUT /messages/1.json
  DEF更新
    respond_to代码做|格式|
      如果@ message.update(message_params)
        的format.html {redirect_to时@message,通知:您的信息已成功更新 }
        format.json {渲染:表演,状态:OK,地点:@message}
      其他
        的format.html {渲染:编辑}
        format.json {渲染JSON:@ message.errors,状态:unprocessable_entity}
      结束
    结束
  结束

  #删除/邮件/ 1
  #删除/messages/1.json
  DEF破坏
    @ message.destroy
    respond_to代码做|格式|
      的format.html {redirect_to时messages_url,通知:您的信息已成功摧毁 }
      format.json {头:} NO_CONTENT
    结束
  结束

  私人
    #使用回调分享共同的设置或动作之间的约束。
    高清set_message
      @message = Message.find(PARAMS [:ID])
    结束

    。
    高清message_params
      params.require(:消息).permit(:名称,标签:email:公司:电话,:主题,:体)
    结束
结束
 

would someone be able to help me understand this error. I am trying to create a contact form in rails following the building web apps tutorial. I followed the steps to generate a message scaffold. I then amended my routes. Next it said to put this into the messages controller show action.

if @message.save
  flash[:notice] = 'Thanks for Your Message'
  format.html { redirect_to root_path }

I have done this and i am getting the following error ActiveModel::ForbiddenAttributesError in MessagesController#create ActiveModel::ForbiddenAttributesError

This is my message controller file

class MessagesController < InheritedResources::Base 
  def show
     if @message.save
      flash[:notice] = 'Thanks for Your Message'
      format.html { redirect_to root_path }
     end
  end
end

My routes file is as follows

# devise_for :users

resources :products do resources :orders, only: [:new, :create] #tells rails needs product id number end

  # get 'pages/payment'

  get 'home/about'

  get 'messages/new'

  get 'seller' => "products#seller"

  get 'sales' => "orders#sales"

  get 'static_pages/productlanding'

  get "content/veg"

  get "content/fruit"

  get "content/mix"

  get 'subscriptions/new'

  root 'static_pages#home'

解决方案

i have managed to sort this with the following! Thanks for all the help

class MessagesController < ApplicationController
  before_action :set_message, only: [:show, :edit, :update, :destroy]

  # GET /messages
  # GET /messages.json
  def index
    @messages = Message.all
  end

  # GET /messages/1
  # GET /messages/1.json
  def show
  end

  # GET /messages/new
  def new
    @message = Message.new
  end

  # GET /messages/1/edit
  def edit
  end

  # POST /messages
  # POST /messages.json
  def create
    @message = Message.new(message_params)

    respond_to do |format|
      if @message.save
        flash.now[:notice] = 'Thank you for your message!'
        format.html { redirect_to root_path }
        format.json { render :show, status: :created, location: @message }
      else
        format.html { render :new }
        format.json { render json: @message.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /messages/1
  # PATCH/PUT /messages/1.json
  def update
    respond_to do |format|
      if @message.update(message_params)
        format.html { redirect_to @message, notice: 'Message was successfully updated.' }
        format.json { render :show, status: :ok, location: @message }
      else
        format.html { render :edit }
        format.json { render json: @message.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /messages/1
  # DELETE /messages/1.json
  def destroy
    @message.destroy
    respond_to do |format|
      format.html { redirect_to messages_url, notice: 'Message was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_message
      @message = Message.find(params[:id])
    end

    .
    def message_params
      params.require(:message).permit(:name, :email, :company, :phone, :subject, :body)
    end
end

这篇关于活动模型禁止属性错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆