внешний ключ не указывается в таблице при создании - рельсы 3 - PullRequest
0 голосов
/ 06 октября 2011

У меня есть две модели: «продукт» с «принадлежащим» и «категория» с «has_many». Продукт имеет внешний ключ «category_id». И в форме product / _form я пытаюсь включить поле категории с опцией выбора, которая показывает опции из таблицы категорий. Но когда я нажимаю «Отправить», category_id не заполняется в таблице продуктов. Пожалуйста, помогите ...

product_controller.rb

def create
@product = Product.new(params[:product])

respond_to do |format|
  if @product.save
    format.html { redirect_to([:backend, @product], :notice => 'Product was successfully created.') }
    format.xml  { render :xml => @product, :status => :created, :location => @product }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @product.errors, :status => :unprocessable_entity }
  end
end
end

_form.html.erb

<%= f.label :category %><br />
 <%= f.select :category_id, options_from_collection_for_select(Category.all, :id, :name), :prompt => "Select" %>

Модели / product.rb

class Product < ActiveRecord::Base

attr_accessible :name, :desc, :price, :is_special

belongs_to :category
end

Модели / category.rb

class Category < ActiveRecord::Base

attr_accessible :name

has_many :products
end

1 Ответ

1 голос
/ 06 октября 2011

attr_accessible :name, :desc, :price, :is_special несет ответственность за

, вам следует добавить :category_id в этот список.когда вы используете attr_accessbible, все остальные поля защищены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...