Форма для создания «предмета», который принадлежит «конкурсу», пуста - PullRequest
0 голосов
/ 11 апреля 2020

Надеюсь, заголовок, смесь кода и английского языка sh, достаточно ясен.

Я нашел очень мало документации об этой ситуации в моих поисках в Интернете ... Кажется, даже официальные рельсы Руководство по API и do c не покрывают form_for моделью, принадлежащей другой.

Я новичок в RoR, и это весело! Я работаю с отношениями и пытаюсь создать форму для создания нового «предмета» на «конкурсе». Проблема в том, что он выходит совершенно пустым, без HTML отрисовки внутри тегов тела, где должна быть форма.

Вот мой route.rb

resources :contests do
  resources :items do
    resources :votes
  end
end

Мой предмет # новый

def new
    @contest = Contest.find params[:contest_id]
    @item = Item.new
end

Мой новый. html .erb

<%= render 'form', item: @item %>

И моя форма_для

<% form_for @item, url: {action: "create"} do |f| %>
  <div class="field">
    <%= f.label :name %>
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :notes %>
    <%= f.text_area :notes %>
  </div>
<% end %>

Также вот отображение маршрута

contest_item_votes_path GET /contests/:contest_id/items/:item_id/votes(.:format)    
votes#index

POST    /contests/:contest_id/items/:item_id/votes(.:format)    
votes#create

new_contest_item_vote_path  GET /contests/:contest_id/items/:item_id/votes/new(.:format)    
votes#new

edit_contest_item_vote_path GET /contests/:contest_id/items/:item_id/votes/:id/edit(.:format)   
votes#edit

contest_item_vote_path  GET /contests/:contest_id/items/:item_id/votes/:id(.:format)    
votes#show

PATCH   /contests/:contest_id/items/:item_id/votes/:id(.:format)    
votes#update

PUT /contests/:contest_id/items/:item_id/votes/:id(.:format)    
votes#update

DELETE  /contests/:contest_id/items/:item_id/votes/:id(.:format)    
votes#destroy

contest_items_path  GET /contests/:contest_id/items(.:format)   
items#index

POST    /contests/:contest_id/items(.:format)   
items#create

new_contest_item_path   GET /contests/:contest_id/items/new(.:format)   
items#new

edit_contest_item_path  GET /contests/:contest_id/items/:id/edit(.:format)  
items#edit

contest_item_path   GET /contests/:contest_id/items/:id(.:format)   
items#show

PATCH   /contests/:contest_id/items/:id(.:format)   
items#update

PUT /contests/:contest_id/items/:id(.:format)   
items#update

DELETE  /contests/:contest_id/items/:id(.:format)   
items#destroy

1 Ответ

0 голосов
/ 12 апреля 2020

Вот мы go! Мой вызов form_for находится внутри не выходного тега. Изменение <% на <% = показывает результат! </p>

Кажется, что иногда ответы на мои вопросы оказываются крошечными деталями, которые легко пропустить, когда проблема кажется сложной. Слово тем, кто спотыкается здесь: рассмотрите основы, прежде чем повторять сложности.

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