Создание представления для добавления вложенного ресурса в приложении Ruby on Rails - PullRequest
0 голосов
/ 01 сентября 2011

Я создаю приложение RoR, которое имеет 3 ресурса, вложенных в следующем порядке: Проекты -> Ленты -> XML_Fields. Проекты has_many Feeds, Feeds has_many XML_Fields. Моя проблема в том, что я застреваю при добавлении в представление Показать каналы возможности добавления нового XML_Field. Мой код ниже:

<h2>Add an XML field:</h2>
<%= form_for ([@feed, @feed.xml_fields.build]) do |f| %>
  <div class="field">
  <%= f.text_area :tag %>
  </div>
  <div class="actions">
  <%= f.submit %>
  </div>
<% end %>

Выполнение этого возвращает NoMethodError: undefined method 'tag'. Tag - это имя столбца в таблице xml_fields, которую я создал. Мой xml_fields_controller имеет этот метод создания:

def create
@xml_field = Feed.find(params[:feed_id]).xml_fields.build(params[:xml_field])

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

конец

И мой файл маршрутизации выглядит так:

resources :projects do
  resources :feeds
end

resources :feeds do
  resources :xml_fields
end

Какие-нибудь предложения, чтобы убрать эту NoMethodError? Спасибо.

1 Ответ

1 голос
/ 01 сентября 2011

модель XmlField не имеет поля тега в базе данных;)

...