Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Jquery 我的Rails应用程序中未定义的局部变量或方法,但在应用程序首次加载时识别_Jquery_Ruby On Rails - Fatal编程技术网

Jquery 我的Rails应用程序中未定义的局部变量或方法,但在应用程序首次加载时识别

Jquery 我的Rails应用程序中未定义的局部变量或方法,但在应用程序首次加载时识别,jquery,ruby-on-rails,Jquery,Ruby On Rails,我正在尝试在我的Rails应用程序中使用replaceWith/html jQuery函数 My review_main.html.erb具有以下DOM结构: <div class="left_window"></div> <div class="right_window"></div> My edit.html.erb具有以下功能: <div class="edit_review_form"> <div class="

我正在尝试在我的Rails应用程序中使用replaceWith/html jQuery函数

My review_main.html.erb具有以下DOM结构:

<div class="left_window"></div>
<div class="right_window"></div>

My edit.html.erb具有以下功能:

<div class="edit_review_form">
  <div class="cancel-edit" id="<%= @review.id %>"></div>
    <div class="inputs"></div>
</div>

当我的应用程序加载时,review_main.html.erb的调用如下:

<!-- I need the 'breadcrumb div' to be outside of review_main, because it will help with my jQuery html/replaceWith  -->
<div class="breadcrumb" id="review_<%= review.id %>">
  <%= render 'reviews/review_main', :review => review %>
</div>

评论%>
因此,加载的DOM如下所示:

<div class="breadcrumb" id="review_<%= review.id %>">
<div class="left_window"></div>
<div class="right_window"></div>
</div>
    <div class = "right_window">
    <%= link_to I18n.t('user.review.edit.edit'), edit_review_path(review), :remote => true, :class => "edit_review_link" %>
  <% end %>
</div>

我从我的review_main.html.erb调用edit.js.erb,如下所示:

<div class="breadcrumb" id="review_<%= review.id %>">
<div class="left_window"></div>
<div class="right_window"></div>
</div>
    <div class = "right_window">
    <%= link_to I18n.t('user.review.edit.edit'), edit_review_path(review), :remote => true, :class => "edit_review_link" %>
  <% end %>
</div>

true,:class=>edit\u review\u link%%>
在edit.js.erb文件中,我有:

$('#review_<%=@review.id%>').html("<%= escape_javascript(render 'edit') %>")
$('#review_<%=@review.id %>').animate({height:'250px'}, 300);
$('#review_<%=@review.id%>').html("<%= escape_javascript( render 'review_main' ) %>")
$('#review').html(“”)
$('#review'')。动画({height:'250px'},300);
所以到现在为止一切都很顺利。DOM结构更改为:

<div class="breadcrumb" id="review_<%= review.id %>">
<div class="edit_review_form">
  <div class="cancel-edit" id="<%= @review.id %>"></div>
    <div class="inputs"></div>
</div>
</div>

问题是将DOM更改回:

<div class="breadcrumb" id="review_<%= review.id %>">
<div class="left_window"></div>
<div class="right_window"></div>
</div>

在my_edit.html.erb中,我有一个“Cancel”链接,应该会再次加载\u review_main.html.erb

取消被称为类似于:

<%= link_to I18n.t('user.review.edit.cancel'), review_path(@review), :remote => true %>
true%>
在show.js.erb文件中,我有:

$('#review_<%=@review.id%>').html("<%= escape_javascript(render 'edit') %>")
$('#review_<%=@review.id %>').animate({height:'250px'}, 300);
$('#review_<%=@review.id%>').html("<%= escape_javascript( render 'review_main' ) %>")
$('#review').html(“”)
但是新的信息没有呈现出来。未确认审查内容中的任何内容。在控制台中,我可以看到:

GET http://localhost:3000/reviews/51 500 (Internal Server Error) 

and

NameError in Reviews#show

Showing /home/mycompaq/myapp/app/views/reviews/_review_main.html.erb where line #8 raised:

undefined local variable or method `review' for #<#<Class:0x7f2fe74a6c08>:0x7f2fe76ca048>
Extracted source (around line #8):
GEThttp://localhost:3000/reviews/51 500(内部服务器错误)
和
评论中的名称错误#显示
显示/home/mycompaq/myapp/app/views/reviews/_review_main.html.erb,其中第8行出现:
未定义的局部变量或方法“review”#
提取的源(第8行附近):

在第一次加载review_main.html.erb时,我没有收到任何错误,所以我只是不明白为什么现在会发生这种情况。谢谢您的帮助。

编辑查看路径(review)
更改为
编辑查看路径(@review |查看)
(因为在show action中,您有
@review
对象,但没有
查看
对象)。现在我得到一个“路由错误:没有路由匹配{:action=>“edit”,:controller=>“reviews”,:id=>#已使用review_块对其进行排序