Rails Ajax请求控制器操作不起作用

时间:2014-09-30 14:11:37

标签: javascript jquery ruby-on-rails ajax

我一直在与此作斗争一段时间,无法弄清楚我做错了什么。我只是想发送一个简单的ajax请求来获取模态的详细信息。

Ajax Call:

$('.invite-button').on('click', function() {
  var path = $(this).data('path');
  $.get(path).success( function(response) {
    console.log(response);
  });
});

控制器操作:

def invite_details
    @user = User.find(params[:id])
    @campaigns = current_user.campaigns
    respond_to do |format|
      format.js {}
    end
end

invite_details.js.erb:

$('.invite-modal').html("<%= j render partial: 'users/invite', locals: {campaigns: @campaigns} %>")

_invite.html.erb:

<h1> Hello! </h1>
<ul>
  <% campaigns.each do |campaign| %>
    <li><%= campaign.title %></li>
  <% end %>
</ul>

服务器日志:

Started GET "/users/8/invite_details" for 127.0.0.1 at 2014-09-30 10:06:43 -0400
Processing by UsersController#invite_details as */*
  Parameters: {"id"=>"8"}
  User Load (0.7ms)  SELECT  "users".* FROM "users"  WHERE "users"."id" = 1 LIMIT 1
  Transaction Load (0.6ms)  SELECT "transactions".* FROM "transactions"  WHERE "transactions"."brand_id" = 1
  Rendered users/invite_details.js.erb (0.1ms)
  SQL (2.4ms)  UPDATE "users" SET "last_activity_at" = '2014-09-30 14:06:43.484838' WHERE "users"."id" = 1
Completed 200 OK in 14ms (Views: 5.4ms | ActiveRecord: 3.7ms)

日志中的所有内容看起来都很好,除了它实际上并没有查询@user或@campaigns的数据库,并且它们在布局中是空的。我也尝试将binding.pry放入控制器操作中,但它不会运行。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是在这里或实际代码上的错误吗? li_invite.html.erb标记内的代码未正确包装。它必须是这样的:

<h1> Hello! </h1>
<ul>
  <% campaigns.each do |campaign| %>
    <li><%= campaign.title %></li>
  <% end %>
</ul>
相关问题