У меня есть две модели: Schedules
и Result
.Rails Создать модель с родительским отношением
- Расписание
has_one
Результата - Результат
belongs_to
Расписания
Schedules
данные будут созданы первыми и, как спичка произойдет, мы будем создавать results
для каждого schedule
.
Как на картинке выше, ссылка Create
приведет вас на страницу, где вы будете создавать результат для расписания. Я пришлю schedule_id
расписания, для которых нажата кнопка Create
.
<%= link_to "Create",new_result_url(:schedule_id => schedule.id),{:class => 'btn btn-link btn'}%>
И в Результаты # Новый
def new
@schedule = Schedule.find(params[:schedule_id])
@result = @schedule.build_result
end
И в представлении результаты/new.html.erb
Это где я застрял или не знаю, как представить форму результата для schedule_id
Я выбрал
<div class="row">
<div class="col-md-4">
<%= form_for(@result) do |f| %>
<h3>Enter the result</h3>
<%= f.text_area :result,class:'form-control' %><br />
<%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>
</div>
</div>
Спасибо Райан и Джон Эванс за ваши быстрые ответы, действительно оцените! Я попробую и опубликую результаты в ближайшее время !! – Krish
Итак, в результате/new.html.erb, когда я отправляю форму, он говорит о неопределенном методе results_path .. как мне построить форму '<% = form_for @result do | f | %> '?? или как его вложенный я должен сделать некоторые вроде этого '<% = form_for @ schedule.result do | f | %> '?? извините за то, что я так наивна в этом, я новичок в рельсах. – Krish
А, измените ваш 'form_for' на:' <% = form_for [@schedule, @result] do | f | %> '. Конечно, у вас должен быть '@ schedule', определенный в вашем контроллере. –