Rails:尝试渲染部分onclick的逻辑有什么问题?

时间:2014-01-15 18:32:33

标签: javascript jquery ruby-on-rails renderpartial

当用户点击名为display的按钮时,我正试图获取活动 控制器:

 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 %>

1 个答案:

答案 0 :(得分: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 %>