1

背景:我创建了一个库存应用程序,该应用程序具有一个属性、每个属性的多个类别以及每个类别的多个项目。

问题:我的问题是在将项目添加到任何类别时,该项目始终作为第一个类别的一部分创建,因此它始终使用第一个类别 created 的 category_id 。以下是以下部分:

物业展示视图

<%= render 'categories/cat_modal' %>
<h4><a href="#myModal" data-toggle="modal">Add a Category</a></h4>

<% @property.categories.each do |category| %> 
  <h4><%= category.title %></h4>

  <% if current_user.try(:admin?) %>
  <%= render 'items/item_modal',
   category: category,
   item: @item %>

  <h4><a href="#itemModal" data-toggle="modal">Add an Item</a></h4>

 <% end %>

部分- item_modal

<div id="itemModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
 <h3 id="myModalLabel">Add an Item</h3>
  </div>
  <div class="modal-body">
   <%= simple_form_for [category, item] do |f| %>
    <%= f.input :name %>
    <%= f.submit 'Submit' %>
    <% end %>** 
  </div>
</div>

属性控制器

 def show
   @property = Property.find(params[:id])
   @category = Category.new 
   @item = @category.items.new
end 

类别控制器

def create
  @property = Property.find(params[:property_id])
  @category = @property.categories.new(params[:category])

  if @category.save!
   redirect_to property_path(@property), notice: 'category successfully created'
  else
   render action: 'new'
 end 

end

物品控制器

def create
 @category = Category.find(params[:category_id])
 @item = @category.items.new(params[:item])
 @event = @category.items.last

 if @item.save!    
  redirect_to :back
  Event.create(time: @event.created_at, state: @event.state, item_id: @event.id)
 else
 end 
end
4

0 回答 0