2014-01-15 63 views
0

我試圖讓活動時,在用戶點擊按鈕叫display 控制器:Rails:試圖在點擊上呈現一個parial的邏輯有什麼問題?

def display 
    @activities = Activity.all 
    @activities = Activity.order("created_at desc") 

    #we will need to find the Post id Through Users relation to the Comments 
    #And this is because Activity Track, tracks Users actions, it breaks down from there. 

    @posts = Post.all 
    @user_comments = UserComment.all  
    respond_to do |format|    
    format.js { @activities = Activity.order("created_at desc") } 
    end 

查看:

<%= link_to "Display", activities_path, :remote => true %> 
<div id="notify" class="section-link"> 
    </div> 

display.js.erb

$('#notify').append("<%= escape_javascript(render :partial => 'layouts/activity') %>"); 

_activity.html.erb

<% @activities.each do |activity| %> 
     <%= ActivityPresenter.new(activity, self).render_activity %> 
    <% end %> 
+0

是什麼問題? –

+0

@BillyChan它現在顯示部分內容。 – 0bserver07

回答

1

試試這個在display.js.erb:

$('#notify').append('<%= escape_javascript(render :partial => 'layouts/activity', :collection => @activities) %>');

然後,嘗試這_activity.html.erb:

<%= ActivityPresenter.new(activity, self).render_activity %>

爲了確保每當用戶點擊「顯示」display動作被調用,您需要調整您的routes.rb文件,它位於config目錄中。你可以這樣做在routes.rb中是這樣的:

get '/activities/display', 'activities#display', as: :activity_display

一旦你在routes.rb中這種變化,您可以編輯link_to這樣的:

<%= link_to "Display", activity_display_path, :remote => true %>

+0

好吧,進步:)!它說好的200當我點擊按鈕,但仍然沒有出現! – 0bserver07

+1

我剛剛編輯了我的答案。嘗試在<%= escape_javascript(...)%>周圍放置單引號而不是雙引號。 – rboling

+0

問題是我有一個不同的動作,並且這個動作並沒有回饋顯示動作! – 0bserver07