Ruby on rails 3 如何使用Ajax和Jquery在Rails3中显示flash错误消息?
我的控制器创建函数是Ruby on rails 3 如何使用Ajax和Jquery在Rails3中显示flash错误消息?,ruby-on-rails-3,Ruby On Rails 3,我的控制器创建函数是 def create @group = Group.new(params[:group]) @group.company=current_user.company respond_to do |format| if @group.save format.html { redirect_to(@group, :notice => 'Group was successfully created.') } format.js
def create
@group = Group.new(params[:group])
@group.company=current_user.company
respond_to do |format|
if @group.save
format.html { redirect_to(@group, :notice => 'Group was successfully created.') }
format.js
else
flash.now[:error]=@group.errors.full_messages
format.html { render :nothing => true }
format.js
end
end
end
create.js.erb文件是
$('<%= escape_javascript(render(:partial => @group))%>').appendTo('#groups');
$("#new_group")[0].reset();
$('@group))%>')。附加到('#groups');
$(“#新#组”)[0]。重置();
当页面最初加载时,为flash创建一个div:
<div class="flash-error"></div>
在js.erb文件中为flash设置javascript变量。然后检查值并使用javascript更新“flash error”div。它可能看起来像这样:
$('<%= escape_javascript(render(:partial => @group))%>').appendTo('#groups');
$("#new_group")[0].reset();
var flashError = "<%=flash.now[:error]%>";
if (flashError){
$(".flash-error").html(flashError);
}
$('@group))%>')。附加到('#groups');
$(“#新#组”)[0]。重置();
var闪光器=”;
if(闪光器){
$(“.flash error”).html(flashError);
}
这是我对这个问题的解决方案。。。。
我把这些放在我所有的js.erb文件中
$('#flash').html("<%= escape_javascript raw(flash_display) %>");
这与布局中已经设置的flashdiv配合得很好
<div id="flash">
<% flash.each do |name, msg| %>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<% end %>
</div>
“flash{name}”%>
希望这有帮助请将您的代码放入代码标记({}符号)
<div id="flash">
<% flash.each do |name, msg| %>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<% end %>
</div>