Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Ruby on rails 4 否则,请检查ujs文件_Ruby On Rails 4_Ujs - Fatal编程技术网

Ruby on rails 4 否则,请检查ujs文件

Ruby on rails 4 否则,请检查ujs文件,ruby-on-rails-4,ujs,Ruby On Rails 4,Ujs,我正在构建一个Rails4.1WebApp,我正在使用一个ajax表单(remote true) 以及包含以下内容的create.js.erb文件: $("div.box-content").prepend('<%=j render @comment %>'); $(".empty-message").hide(); $(".textfield").val(""); 您可以检查服务器端(有条件地输出不同的JavaScript),也可以检查JavaScript中的客户端 检查服务器端

我正在构建一个Rails4.1WebApp,我正在使用一个ajax表单(remote true) 以及包含以下内容的create.js.erb文件:

$("div.box-content").prepend('<%=j render @comment %>');
$(".empty-message").hide();
$(".textfield").val("");

您可以检查服务器端(有条件地输出不同的JavaScript),也可以检查JavaScript中的客户端

检查服务器端包括测试是否设置了
@comment
,并且不输出任何前置JavaScript:

<% if @comment.present? %>
  $("div.box-content").prepend('<%=j render @comment %>');
<% end %>
$(".empty-message").hide();
$(".textfield").val("");

$(“div.box-content”)。前缀(“”);
$(“.empty message”).hide();
$(“.textfield”).val(“”);
检查客户端涉及到在变量中输出空值,以便在将其前置到元素之前可以在JavaScript中检查它:

var comment = '<%= j render @comment %>';
if (comment) {
  $("div.box-content").prepend(comment);
}
$(".empty-message").hide();
$(".textfield").val("");
var注释=”;
如果(评论){
$(“div.box-content”)。前置(注释);
}
$(“.empty message”).hide();
$(“.textfield”).val(“”);

我会使用第一种方法。

不幸的是,它们都不起作用。即使注释为空,仍会添加该行。然后您需要找出
@comment
中的实际值,并对其进行测试。您没有提供此信息,因此我无法进一步提供帮助。已使用controllerOk中的create方法进行更新。解决了。用过了,有效吗?而不是现在?无论如何谢谢你!是的,那是丢失的一块。如果您使用的是
Model.create
,则始终会有一个值,它永远不会像您所说的那样为“空”。Ruby中的Empty意味着
nil
,或者至少是一个空数组,对于
present?
,这两个数组都将返回false。
var comment = '<%= j render @comment %>';
if (comment) {
  $("div.box-content").prepend(comment);
}
$(".empty-message").hide();
$(".textfield").val("");