2011-04-08 43 views
1

我有这样的代码在我的个人资料显示的看法:为什么我从show.js.erb文件中得到这个错误?

<div id='main_profile_column'> 
    <div id="video_div"> 
    <% @videos.each do |video| %> 
     <%= render 'videos/video', :video => video %> 
    <% end %> 
    </div> 
     <%= paginate @videos %> 
</div> 

和我使用的是show.js.erb文件来呈现视频,以实现AJAX分页部分。我有这个在我的show.js.erb文件:

$("#video_div").html("<%= escape_javascript(render("videos/video")) %>"); 

这个代码怎么给我这个错误:

GET http://localhost:3000/profiles/45?page=2&_=1302255080024 500 (Internal Server Error) 

我应该是什么样的代码将在.js.erb文件?

下面是从日志中的错误:

Started GET "/profiles/45?page=2&_=1302255923695" for 127.0.0.1 at Fri Apr 08 02:45:23 -0700 2011 
    Processing by ProfilesController#show as JS 
    Parameters: {"id"=>"45", "page"=>"2", "_"=>"1302255923695"} 
    Profile Load (0.2ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."id" = 45 LIMIT 1 
Creating scope :page. Overwriting existing method Profile::Listener.page. 
    User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = 57 LIMIT 1 
Rendered videos/_video.html.erb (1.3ms) 
Rendered profiles/show.js.erb (3.0ms) 
Completed in 172ms 

ActionView::Template::Error (undefined method `model_name' for NilClass:Class): 
    1: <%= div_for video do %> 
    2: <div class="voting_div"> 
    3: <%= link_to "&uArr;".html_safe, video_votes_path(:video_id => video.id, :type => "up"), :method => :post, :remote => true, :class => "up_arrow round #{current_user && (vote = current_user.votes_for(video)) && vote.value == 1 ? "voted" : "unvoted" }" %> 
    4: <div id="vote_display" class = "round"> 
    app/views/videos/_video.html.erb:1:in `_app_views_videos__video_html_erb___358525845_2174681160_1885950' 
    app/views/profiles/show.js.erb:1:in `_app_views_profiles_show_js_erb__196650825_2174697160_0' 
+0

这是你从development.log或在浏览器中得到了错误? – 2011-04-08 06:43:21

+0

from chrome debugger – 2011-04-08 06:47:06

+0

在你的development.log中查看真实的错误 – 2011-04-08 06:47:56

回答

2

是您@videos变量设置正确,在你的控制器/行动?

试试这个:

$("#video_div").html("<%= escape_javascript(render(:partial => "videos/video", :collection => @videos)) %>");