2010-01-03 5 views
0

следит за этой темой: (Rails) How to display child records (one-to-many) in their parent's form?один ко многим отношений в ROR с помощью Formtastic

Я создаю категорию, которая может иметь много продуктов. Итак, я использую Formtastic, как предложил Chandra Patni. Но я обнаружил, что есть проблема, когда я добавил attr_accessible в product.rb.

class Product < ActiveRecord::Base 
    validates_presence_of :title, :price 
    validates_numericality_of :price 
    validates_uniqueness_of :title 

    attr_accessible :category_id, :name 
    belongs_to :category 

end 

и это category.rb:

class Category < ActiveRecord::Base 
    attr_accessible :name 
    has_many :products 
end 

После того как я добавил attr_accessible: CATEGORY_ID,: имя, проверка получает с ума, независимо от того, я печатаю, он относится ко мне, как нуль в текстовое значение. Но после удаления attr_accessible: category_id,: name все работает. более

Одна вещь, в продукции/new.html.erb, я создал это для ввода информации о продукте,

<% semantic_form_for @product do |f| %> 
    <% f.inputs do %> 
    <%= f.input :title %> 
    <%= f.input :price %> 
    <%= f.input :photoPath %> 
    <%= f.input :category %> 
    <% end %> 
    <%= f.buttons %> 
<% end %> 

Но я считаю, что она возвращает: идентификатор категории вместо названия категории. Что мне делать? Thx в продвинутом состоянии.

ответ

1

Для выполнения массовых заданий вам необходимо будет добавить другие атрибуты к attr_accessible.

attr_accessible :category_id, :name, :title, :price, :photoPath 

Rails будет делать только массовое присвоение атрибутов, указанных в attr_accessible (белый список), если у вас есть. Это необходимо с точки зрения безопасности. Rails также обеспечивает способ присвоения массовым спискам черного списка с помощью метода attr_protected.

Вы должны увидеть раскрывающийся список для категории, если у вас есть name атрибут в вашей модели Category. См. this и this.

class Category < ActiveRecord::Base 
    has_many :products 
    attr_accessible :name  
end 
+0

веб-сайт только <% = f.input: категория,: include_blank => ложь%> , чем они могут вернуть название категории, но я не могу сделать это, я только получить объект Я бы. – DNB5brims

+0

У вас есть атрибут имени для категории? –

+0

Извините, у меня неправильный тип. большое спасибо. – DNB5brims