我正在制作一个控制电视节目的节目,所以我的关系是:Show
有很多Seasons
而Season
有很多Episodes
。
我不知道如何将show.id
传递给季节表,而我的一位朋友帮助了我,但我不理解他的方法。当我尝试使用相同的方法为剧集传递season_id
但我不能。所以这是代码:
季节控制器
def create
@season = Season.new(season_params)
if session[:id] != nil
@season.show_id = (session[:id])
session[:id] = nil
end
显示节目视图(我选择了错误的名称)。 在这个视图中,我希望看到与该节目相关的所有季节和剧集。
<p id="notice"><%= notice %></p>
<% @seasons = Season.all %>
<% @seasons.where(:show_id => @show.id).each do |season| %>
<tr>
<td><%= season.order %></td>
<td><%= season.status %></td>
</tr>
<% end %>
<%= link_to 'create seasons', season_new_path(@show.id) %>
<%= link_to 'Edit', edit_show_path(@show) %> |
<%= link_to 'Back', shows_path %>
的routes.rb
Rails.application.routes.draw do
resources :episodes
resources :seasons
resources :shows
get 'seasons/create/:id' => 'seasons#new', as: :season_new
是否有更好的方法可以为show.id
和season
传递season.id
的ID作为剧集?
我忘了推送我为剧集编写的代码及其在另一台电脑中的代码。
如果您想查看更多代码,请查看我的github:Github code
答案 0 :(得分:0)
在accepts_nested_attributes_for :seasons
模型中添加Show
new.html.erb,应该看起来像这样
<% form_for @show do |f| %>
<%= f.error_messages %>
<% f.fields_for :seasons do |s| %>
<p>
<%= s.label :order, "Order" %><br />
<%= s.text_field :order %>
</p>
<p>
<%= s.label :status, "Status" %><br />
<%= s.text_field :status %>
</p>
<% end %>
<p><%= f.submit "Submit" %></p>
<% end %>
show.html.erb
<p id="notice"><%= notice %></p>
<% for season in @show.seasons %>
<td><%= season.order %></td>
<td><%= season.status %></td>
<% end %>
<%= link_to 'create seasons', season_new_path(@show) %>
<%= link_to 'Edit', edit_show_path(@show) %> |
<%= link_to 'Back', shows_path %>