js.erb未呈现 - ActionView :: MissingTemplate

时间:2013-01-14 11:25:30

标签: ruby-on-rails-3.2

我有一个名为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。我知道这很简单,但我似乎无法破解它。很沮丧。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

你试过吗

  respond_to do |format|
    format.js
  end

甚至

render :template => 'sports/feed'

在你的成功if语句块?这会强制控制器格式化js.erb