Tôi đang sử dụng đường ray để tạo sản phẩm mới và muốn thêm danh mục vào mọi sản phẩm.Đường ray thuộc tính lồng nhau - cách thêm thuộc tính danh mục vào sản phẩm mới?
Tôi có ba bảng: sản phẩm, danh mục và phân loại (lưu trữ mối quan hệ giữa các sản phẩm và danh mục). Tôi đang cố gắng sử dụng các thuộc tính lồng nhau để quản lý việc tạo các phân loại, nhưng không chắc chắn cách trình điều khiển và khung nhìn/biểu mẫu của tôi nên được cập nhật để các sản phẩm mới cũng cập nhật bảng phân loại.
Dưới đây là mô hình của tôi:
class Product < ActiveRecord::Base
belongs_to :users
has_many :categorizations
has_many :categories, :through => :categorizations
has_attached_file :photo
accepts_nested_attributes_for :categorizations, allow_destroy: true
attr_accessible :description, :name, :price, :photo
validates :user_id, presence: true
end
class Category < ActiveRecord::Base
attr_accessible :description, :name, :parent_id
acts_as_tree
has_many :categorizations, dependent: :destroy
has_many :products, :through => :categorizations
end
class Categorization < ActiveRecord::Base
belongs_to :category
belongs_to :product
attr_accessible :category_id, :created_at, :position, :product_id
end
Dưới đây là bộ điều khiển sản phẩm mới của tôi:
def new
@product = Product.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @product }
end
end
Và đây là hình thức quan điểm của tôi:
<%= form_for @product, :html => { :multipart => true } do |f| %>
<% if @product.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from being saved:</h2>
<ul>
<% @product.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %><br />
<%= f.text_field :description %>
</div>
<div class="field">
<%= f.label :price %><br />
<%= f.number_field :price %>
</div>
<div class="field">
<%= f.file_field :photo %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Làm thế nào tôi nên cập nhật bộ điều khiển của tôi sao cho cả bảng sản phẩm và bảng phân loại được cập nhật khi một sản phẩm mới được thêm vào? Làm cách nào để cập nhật tệp xem của tôi để các danh mục xuất hiện trong trình đơn thả xuống?
* nhưng không chắc chắn như thế nào tôi ... xem/biểu mẫu phải được cập nhật * - chúng tôi cũng không có ý tưởng nào vì bạn không hiển thị chúng. – jdoe
Xin chào @jdoe - Tôi đã thêm tệp xem tại đây. Chỉ một tiêu chuẩn được tạo ra bởi các lệnh tạo ra đường ray. –