0
我有三種型號,Subscription
,Show
和Episode
。 Subscription
的作用是解析飼料在其:url
列並實例化Show
和Episode
,用Feedjira屬性填充它們的列。如何在我的創建方法中將實例放在頁面上而不訪問參數?
我只能在訪問shows/1/episodes/1
時使用中的<%= render @show.episodes %>
顯示視圖不起作用,並且不會給出任何錯誤。
在Rails入門指南中,他們使用這個作爲他們的Comment
創建方法,允許這樣做。
@article = Article.find(params[:article_id])
@comment = @article.comments.create(comment_params)
redirect_to article_path(@article)
是否缺乏參數導致這種情況?如果是這樣,我將如何使用這個方法中的參數?
def create
@subscription = Subscription.new(subscription_params)
if @subscription.save
@show = Show.new
@episodes = []
# Feed
@feed = Feedjira::Feed.fetch_and_parse @subscription.url
# Show
@show.title = @feed.title
@show.description = @feed.description
@show.genre = @feed.itunes_categories
@show.url = @feed.url
@show.logo = @feed.itunes_image
@show.save
# Episode
@feed.entries.each do |item|
@episodes.push(item)
end
@episodes.each do |item|
@episode = @show.episodes.create
@episode.title = item.title
@episode.description = item.summary
@episode.release_date = item.published
@episode.show_id = @show
@episode.save
end
redirect_to @subscription
end
end
episodes/_episode.hmtl.erb
<ul>
<li>
<%= episode.title %>
</li>
<li>
<%= episode.description %>
</li>
<li>
<%= episode.url %>
</li>
<li>
<%= episode.release_date %>
</li>
<li>
<%= episode.show_id %>
</li>
</ul>
shows/show.html.erb
<h1>Showing Show</h1>
<h2><%= @show.title %></h2>
<%= render @show.episodes %>
添加我的路線和模式的情況下,這是個問題:
routes.rb
Rails.application.routes.draw do
resources :shows do
resources :episodes
end
resources :subscriptions
root 'subscriptions#index'
end
show.rb
class Show < ActiveRecord::Base
has_many :episodes, dependent: :destroy
end
episode.rb
class Episode < ActiveRecord::Base
belongs_to :show
end
subscription.rb
class Subscription < ActiveRecord::Base
validates :url, uniqueness: true
end
不幸的是,這不起作用。在入門指南中,他們只使用了「<%= render @ article.comments%>」,這是否啓用了該功能? RE:我的控制器邏輯,有一天我得到了相反的建議。我是編程新手,所以我不知道該相信誰... http://stackoverflow.com/a/34701029/5741622 – Jane