Ruby on rails 当我想重新注册一个表单时,我收到以下错误:NoMethodError(未定义的方法'permit';for";create";:String)
当我发送收到的表格数据时: NoMethodError(未定义“create”:String的“permit”方法): app/controllers/actions_controller.rb:53:inRuby on rails 当我想重新注册一个表单时,我收到以下错误:NoMethodError(未定义的方法'permit';for";create";:String),ruby-on-rails,Ruby On Rails,当我发送收到的表格数据时: NoMethodError(未定义“create”:String的“permit”方法): app/controllers/actions_controller.rb:53:inaction_params' app/controllers/actions\u controller.rb:18:increate' 表格如下: = controlled_form do = render 'shared/error_messages', object: @action
action_params'
app/controllers/actions\u controller.rb:18:in
create'
表格如下:
= controlled_form do
= render 'shared/error_messages', object: @action
= remote_form(@action, html: { id: "actionsForm" }) do |f|
= input_group "fas fa-file-alt" do
= f.text_field :name, \
autofocus: true, \
placeholder: t('actions.form.name'), \
class: "form-control"
= input_group 'fas fa-file-alt' do
= f.text_area :description, \
placeholder: t('actions.form.description'), \
class: "form-control"
以及创造的功能:
def create
@action = Action.new(action_params)
if @action.save
flash[:success] = "\"#{@action.name}\" was created"
respond_to do |format|
format.js { render js: "Turbolinks.visit('#{actions_path}')" }
end
else
render_form status: :bad_request
end
end
最后:
def action_params
params.require(:action).permit(:name, :description)
end
“action”是引用当前控制器操作的params散列上的一个特殊键,您不应该将action
用作参数。我不确定您在表单中使用了什么(remote\u表单
不是一种common rails表单帮助器方法),但它应该给您一个选项来更改它,就像form\u with
helper上的scope
选项一样
将其更改为类似“action_object”或“action”以外的任何内容,然后在
action_params
提交时发送的参数是什么?你能分享一下吗?