我正在构建一个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
答案 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("");
我会使用第一种方法。