param丢失或值为空:面包

时间:2015-07-09 06:47:21

标签: ruby-on-rails

我正在使用ruby on rails docs作为指导,但我的第一张表格却被卡住了。而不是“文章”资源,我正在使用一个名为“面包”的资源。但是,当我在breads / new上提交表单时,我收到错误:

在BreadsController中创建的ActionController :: ParameterMissing #create param丢失或值为空:bread

应用/视图/面包/ new.html.erb:

<h1>New Breads!</h1>
<%= form_for :bread, url: breads_path do |f| %>
  <p>
    <%= f.label :type %><br>
    <%= f.text_field :type %>
  </p>
  <p>
    <%= f.submit %>
  </p>

<% end %>

应用/控制器/ breads_controller.rb:

class BreadsController < ApplicationController
  def new
  end

  def create
    @bread = Bread.new(bread_params)

    @bread.save
    redirect_to @bread
  end

  private
    def bread_params
      params.require(:bread).permit(:type)
    end
end

1 个答案:

答案 0 :(得分:0)

您需要更改代码,请参阅下文

new操作中初始化Bread类的对象并在new.html.erb中使用该对象,convention over configuration rails将自动为表单分配创建操作的网址

查看

<h1>New Breads!</h1>
<%= form_for @bread do |f| %>
  <p>
    <%= f.label :type %><br>
    <%= f.text_field :type %>
  </p>
  <p>
    <%= f.submit %>
  </p>

<% end %>

<强>控制器

class BreadsController < ApplicationController
  def new
    @bread = Bread.new
  end

  def create
    @bread = Bread.new(bread_params)

    @bread.save
    redirect_to @bread
  end

  private
    def bread_params
      params.require(:bread).permit(:type)
    end
end

希望有所帮助!