Javascript Rails Ajax请求控制器操作不工作
我已经为此奋斗了一段时间,不知道自己做错了什么。我只是想发送一个简单的ajax请求,以获取modal的详细信息 Ajax调用:Javascript Rails Ajax请求控制器操作不工作,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我已经为此奋斗了一段时间,不知道自己做错了什么。我只是想发送一个简单的ajax请求,以获取modal的详细信息 Ajax调用: $('.invite-button').on('click', function() { var path = $(this).data('path'); $.get(path).success( function(response) { console.log(response); }); }); 控制器操作: def invite_detail
$('.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
邀请_details.js.erb:
$('.invite-modal').html("<%= j render partial: 'users/invite', locals: {campaigns: @campaigns} %>")
日志中的所有内容看起来都很好,只是它实际上并没有查询数据库中的@user或@campeting,而且它们在布局中是空的。我还尝试将binding.pry放入控制器操作,但它没有运行。有什么想法吗
谢谢 这是这里的错别字还是实际代码上的错别字。
\u invite.html.erb
中的li
标记中的代码未正确包装。它必须是这样的:
<h1> Hello! </h1>
<ul>
<% campaigns.each do |campaign| %>
<li><%= campaign.title %></li>
<% end %>
</ul>
你好!
看起来像是从数据库中获取用户。您使用当前用户而不是@user变量获取活动的原因是什么?是的,它们实际上是不同的用户@用户正在抓取“当前用户”邀请的人。服务器正在加载“id”为1的用户,但参数的“id”为8。我真的很困惑这个问题。如果你对任何路径的输出都做console.log,它与你期望的路径匹配吗?是的。根据服务器日志,除了控制器操作中的代码似乎没有运行之外,其他一切都正常工作。我听到“你好!”在模式中呈现(来自_invite.html.erb),但仅此而已。
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)
<h1> Hello! </h1>
<ul>
<% campaigns.each do |campaign| %>
<li><%= campaign.title %></li>
<% end %>
</ul>