Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails—使用ajax实现链接_Javascript_Jquery_Ruby On Rails_Ajax_Ruby On Rails 4 - Fatal编程技术网

Javascript Rails—使用ajax实现链接

Javascript Rails—使用ajax实现链接,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,我有一个链接,它应该使用ajax来加载它旁边的部分内容,而无需重新加载页面。以下是链接: <%= link_to 'test ajax link', profile_form_path , remote: true %> 以下是routes文件中的行: get 'profile_form', to: 'profiles#profile_form' 如果我将文件名更改为profile_form.html.erb,页面将加载,但显然不使用ajax。有谁能告诉我使用ajax实现这一点的

我有一个链接,它应该使用ajax来加载它旁边的部分内容,而无需重新加载页面。以下是链接:

<%= link_to 'test ajax link', profile_form_path , remote: true %>
以下是routes文件中的行:

get 'profile_form', to: 'profiles#profile_form'

如果我将文件名更改为profile_form.html.erb,页面将加载,但显然不使用ajax。有谁能告诉我使用ajax实现这一点的正确方法吗?谢谢。

从您上面发布的内容来看,这应该是正确的。我能想到的唯一一件事是,您没有包含所需的javascript库,并且指向帮助程序的
链接实际上没有发出AJAX请求

您指出您正在使用Rails 4,因此我假设您也在使用资产管道。请确保您的
app/assets/javascripts/application.js文件中有以下行

//= require jquery
//= require jquery_ujs
javascript被包含在
ProfilesController使用的布局中。假设布局为
application.html.erb
,请确保

<%= javascript_include_tag "application" %>


在布局的
部分中。

您需要的是一个部分,例如,
\u profile.html.erb
。下划线告诉Rails此文件呈现为部分文件。在您的
profile\u form.js.erb
中,您可以尝试

$('.tab-edit-profile').html("<%= escape_javascript(render 'profile') %>");

请确保在控制器响应中使用
render json:@profile

您可以为此发布路线吗?很可能HTTP动词没有对齐。当然,只是发布了它。谢谢。你收到一个HTML格式的请求,你有一个.js.erb文件(erb文件在最后生成一个js文件),这就是Rails抱怨的原因:为了响应HTML格式,他正在寻找
profile\u form.HTML.erb
。您可以创建此文件并自行插入脚本标记:
$('.tab edit profile').html(“”)@MrYoshiji,谢谢,但这不起作用,因为这样视图就不会通过ajax加载,整个页面都会转到链接。您使用的Rails版本是什么?
//= require jquery
//= require jquery_ujs
<%= javascript_include_tag "application" %>
$('.tab-edit-profile').html("<%= escape_javascript(render 'profile') %>");
$('.tab-edit-profile').html("<%= escape_javascript(render @profile) %>");