活动模型禁止属性错误 [英] Active Model Forbidden attributes error
问题描述
会有人能帮助我理解这个错误。我想创建以下建筑物的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屋!