如果否则检查ujs文件

时间:2014-10-09 14:21:18

标签: ruby-on-rails-4 ujs

我正在构建一个Rails 4.1 webapp,我正在使用一个ajax表单(远程true) 和包含此内容的create.js.erb文件:

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

如何检查@comment是否为空? 现在它在没有内容时添加一个空行(如果没有设置注释,我不想添加一行)。

更新

def create
  @comment = @object.comments.create(comments_params)
end

1 个答案:

答案 0 :(得分:1)

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

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

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

检查客户端涉及在变量中输出空值,以便您可以在JavaScript中检查它,然后将其添加到元素中:

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

我会使用第一种方法。