3

次を含む app/views/sports/feed.js.erb にある 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 を正常にレンダリングしたため、これは奇妙です。これは単純なことだとわかっていますが、解読できないようです。とてもイライラします。どんな助けでも大歓迎です!

4

1 に答える 1

1

やってみましたか

  respond_to do |format|
    format.js
  end

あるいは

render :template => 'sports/feed'

あなたの成功した if ステートメント ブロック内ですか? これにより、コントローラーは強制的に js.erb をフォーマットします。

于 2013-01-30T15:54:35.773 に答える