Rails 4 - ActiveModel::ForbiddenAttributesError
Rails 4 - ActiveModel::ForbiddenAttributesError
我已经阅读了有关它的其他问题,但我仍然无法指出导致错误的原因。我已经定义了Rails4的强参数,但是一直显示错误:
ActiveModel::ForbiddenAttributesError in MessagesController#create
我的观点是:
<%= form_for(@message) do |f| %>
<div class="form-group field">
<%= f.label :phrase %>
<br/>
<%= f.text_field :phrase, autofocus: true, class: 'form-control' %>
</div>
<div class="form-group field">
<%= f.label :date %>
<br/>
<%= f.date_field :date, class: 'form-control' %>
</div>
<div class="actions text-center">
<%= f.submit "Submit", class: 'btn btn-default' %>
</div>
<% end %>
我的控制器:
class MessagesController < ApplicationController
def today
@dates = Message.all()
end
def history
@messages = Message.history_checker
end
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.save
flash[:notice] = "OK"
redirect_to root_path
else
render :action => 'new'
end
end
private
def message_params
params.require(:message).permit(:phrase,:date)
end
end
错误指向控制器的第 15 行 @message = Message.new(params[:message])
。有什么想法吗?
您只需要使用 message_params
而不是 params[:message]
:
@message = Message.new(message_params)
我已经阅读了有关它的其他问题,但我仍然无法指出导致错误的原因。我已经定义了Rails4的强参数,但是一直显示错误:
ActiveModel::ForbiddenAttributesError in MessagesController#create
我的观点是:
<%= form_for(@message) do |f| %>
<div class="form-group field">
<%= f.label :phrase %>
<br/>
<%= f.text_field :phrase, autofocus: true, class: 'form-control' %>
</div>
<div class="form-group field">
<%= f.label :date %>
<br/>
<%= f.date_field :date, class: 'form-control' %>
</div>
<div class="actions text-center">
<%= f.submit "Submit", class: 'btn btn-default' %>
</div>
<% end %>
我的控制器:
class MessagesController < ApplicationController
def today
@dates = Message.all()
end
def history
@messages = Message.history_checker
end
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.save
flash[:notice] = "OK"
redirect_to root_path
else
render :action => 'new'
end
end
private
def message_params
params.require(:message).permit(:phrase,:date)
end
end
错误指向控制器的第 15 行 @message = Message.new(params[:message])
。有什么想法吗?
您只需要使用 message_params
而不是 params[:message]
:
@message = Message.new(message_params)