在类别中创建项目时,该项目无法获得category_id

时间:2016-05-09 13:15:22

标签: ruby-on-rails ruby

我正在使用Rails构建电子商务,我遇到了这个问题:

当我尝试从浏览器创建某个类别中的新项目时,创建的项目不会获得该类别的ID。

http://localhost:3000/categories/1/items/new

在控制台中,我可以验证params是否正确获取了category_id:

Parameters: {"category_id"=>"1"}

创建项目后,category_id等于nil。

这是我的项目模型文件:

class Item < ActiveRecord::Base
  belongs_to :category
end

类别模型:

class Category < ActiveRecord::Base
  has_many :items
end

这是我的items_controller.rb文件,我将category_id传递给Item:

class ItemsController < ApplicationController
# other actions are ommited
    def new
      @item = Item.new
      @item.category_id = params[:category_id]
    end
end

您还可以查看整个应用程序: https://github.com/kaneru/estore

提前致谢。

1 个答案:

答案 0 :(得分:2)

您的views/items/_form.html.erb应如下所示:

<div class="row">
  <div class="col-lg-4 col-md-offset-4">
  <%= simple_form_for @item do |f| %>
    <%= f.hidden_field :category_id,value: params[:category_id] %>
    <%= f.input :title %>
    <%= f.input :price %>
    <%= f.input :color %>
    <%= f.input :weight %>
    <%= f.input :description, as: :text %>
    <%= f.input :picture, as: :file %>
    <%= f.button :submit, class: "btn btn-primary" %>
  <% end %>

  <br/>
  <%= render "menu" %>
  </div>
</div>