对象未保存到数据库

Object not saving to database

我正在尝试使用 form_for 在 rails 中创建一个新对象。由于某种原因,我无法将对象保存到数据库中。见下文

型号:

class Property < ActiveRecord::Base
  has_many :units
end

观点: new.html.erb

<form>
  <div class="form-group">
    <div class = "row">
      <div class="col-md-8">

        <%= form_for (@property) do |f| %>

          <%= f.label :property_name %>
          <%= f.text_field :property_name, class: 'form-control', placeholder:"Please enter property name here" %><br/>

          <%= f.label :property_address %>
          <%= f.text_field :property_address, class: 'form-control' %><br/>
      </div> 
    </div>    
  </div> 
  <%= f.submit "Add Building"%> 
  <% end %>
</form>

控制器:

  def new
    @property = Property.new
  end

  def create
    @property = Property.new(property_params)
    if @property.save
      flash[:success] = "Property created"
      redirect_to root_path
    else
      flash[:error] = "Property was not created"
      render new_property_path
    end
  end
private
    def property_params
      params.require(:property).permit(:property_name, :property_address)
    end

这是它产生的参数

Parameters: {"utf8"=>"✓", "authenticity_token"=>"VNad0+BD6TAavWiSCSX12Ob6ilU+DrzDv0O/d++af1+s6BtQkC2hKUUINaPXhk1hWA5Qfa6JV0RwkpAlx8IwKg==", "property"=>{"property_name"=>"test 934", "property_address"=>""}, "commit"=>"Add Building"}

您的视图中似乎有一个额外的 FORM 标记。 HTML 中不能嵌套表单。在您看来,您应该删除此表单

<form>
  <div class="form-group">
..
..
</form>

此块将生成带有操作和方法集的表单。所以如果你从中删除这个额外的东西应该可以工作。

<%= form_for (@property) do |f| %> 

会生成表单method='post' action='/properties'

希望对您有所帮助