2013-09-25 8 views
0

У меня есть отношения «один к одному» с Акциями и рекомендациями.Как создать вложенный ресурс?

В Testimonial.rb:

belongs_to :share 

В Share.rb:

has_one :testimonial 

Я хочу, чтобы добавить форму на страницу акции, где я могу создать характеристику, которая принадлежит к той конкретной доли ,

Внутри SharesController я установил:

@testimonial = @share.build_testimonial 

В акции просмотра у меня есть:

<%= form_for @testimonial do |f| %> 
<%= f.text_area :message %> 
<%= f.submit "Submit testimonial" %> 

ли выше правильно или я должен добавить объект акций в целях каким-то образом?

Что я могу добавить к действию create в Контроллере отзывов, чтобы создать отзыв и связать его с объектом @share?

Я попытался отправить share_id в контроллер отзывов из представления в качестве дополнительного параметра, а затем использовал фильтр «до», чтобы найти объект общего доступа, но я не думаю, что это правильный способ сделать это.

ответ

0

В share.rb модели вы хотели бы добавить:

accepts_nested_attributes_for :testimonial 

Поскольку вы в share зрения, я думаю, вы бы иметь конструкцию, в том зрения:

<%= form_for @share do |f| %> 
    ... 
<% end %> 

в этом контексте использовать testimonial поля:

<%= form_for @share do |f| %> 
    <%= fields_for @share.testimonial do |t| %> 
    <%= t.text_area :message %> 
    <% end %> 
<% end %> 
+0

Я хочу использовать Testimoni als создает действие вместо действия Shares Edit (put). Будет ли это иметь значение? – grabury

+0

@spuggy, возможно, это действительно должно быть скорее представлением отзыва, чем представлением об общем доступе. – lurker

+0

На моей странице общего доступа у меня есть частичный, который создает отзыв и еще одно частичное, которое создает обратную связь. Я не могу иметь его на своей странице, если это то, что вы имеете в виду – grabury

Смежные вопросы