我有一个名为feed.js.erb的视图文件,该文件位于app / views / sports / feed.js.erb中,其中包含:
<% if @newsfeed.nil? %>
alert("No news items for #{@athlete.nil? ? @team : @athlete.full_name}!")
<% else %>
$("#sportfeed").append("<%= j render 'newsfeeds/newsfeed', feed: @newsfeed %>");
<% end %>
SportsController中的控制器操作是
def feed
if params[:sport]
@newsfeed = get_sport_news(Sport.find(params[:sport]))
elsif params[:athlete]
@athlete = params[:athlete]
@newsfeed = get_athlete_news(Athlete.find(params[:athlete]))
elsif params[:team]
@team = params[:team]
@newsfeed = get_team_news(@sport.id, params[:team])
end
end
routes.rb中的路由是:
resources :sports do
collection do
get :feed
end
end
我得到的是
ActionView::MissingTemplate (Missing template sports/feed, application/feed with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}
这很奇怪,因为我已经通过另一个控制器从create成功渲染了js.erb。我知道这很简单,但我似乎无法破解它。很沮丧。任何帮助将不胜感激!
答案 0 :(得分:1)
你试过吗
respond_to do |format|
format.js
end
甚至
render :template => 'sports/feed'
在你的成功if语句块?这会强制控制器格式化js.erb