Я все еще немного нечетко обращаюсь к контроллерам в рельсах, особенно потому, что многие вещи происходят магическим образом за кулисами, а в этом случае этого не происходит.
Скажем, у меня есть модель человека, у которой много фотографий (с использованием скрепки) и много любимых цитат. В кавычках может быть текст, имя автора и т. Д. В обеих этих моделях они определены как принадлежащие моей модели персонажа.
В новой форме я использовал другой код для создания новой фотографии:
<% form.fields_for :screenshots, :html => { :multipart => true } do |screen_form| %>
<%= render :partial => 'screenshot', :locals => { :form => screen_form } %>
<% end %>
Частичное для этого очень просто, как это (минус некоторые javascript-файлы ajax, которые я вставил для вложенных моделей):
<%= form.label :photo, "Screenshot:" %>
<%= form.file_field :photo %>
Это все работает отлично, и волшебным образом идентификатор человека ассоциируется со скриншотом при создании в person_id. У меня даже нет контроллера для скриншотов, и он все еще работает.
Однако, это не работает для моих цитат.
<% remote_form_for :quote, :html => { :method => :put }, :url => {:controller => "quote", :action => "create", :person_id => @person.id} do |quote_form| %>
<%= render :partial => 'quote', :locals => { :form => quote_form } %>
<% end %>
Частичное для этого также очень просто.
<%= form.label :quote_text %>
<%= form.text_field :quote_text %>
.........
<%= form.submit 'Create' %>
Я не совсем уверен, смогу ли я указать там удостоверение личности, но оно не жаловалось. Однако это тоже не сработало. Контроллер котировок очень прост.
def create
@quote = Quote.create(params[:quote])
end
В настоящее время он помещается в БД, но person_id не заполняется, поэтому я не могу найти кавычки, связанные с конкретным человеком. Извините, если это глупый вопрос, но я как бы изучаю Rails, настраивая учебники и собирая их вместе, так что терпите меня :) Это просто таинственно, как работает фото без НЕТ контроллеров или специальных вещей, и это не так .