Ruby on rails 在RubyonRails中单击按钮之前,如何阻止flash错误消息显示在页面加载上?
我正在试图找到一种方法来阻止此flash消息在页面加载时显示:Ruby on rails 在RubyonRails中单击按钮之前,如何阻止flash错误消息显示在页面加载上?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,我正在试图找到一种方法来阻止此flash消息在页面加载时显示: class SearchesController < ApplicationController def index @users = User.search params[:search] @default_image = "/assets/default_avatar.jpg" if @users.empty? || params[:search].blank? f
class SearchesController < ApplicationController
def index
@users = User.search params[:search]
@default_image = "/assets/default_avatar.jpg"
if @users.empty? || params[:search].blank?
flash[:error] = "Sorry no user(s) found!" if @users.empty?
flash[:error] = "Please give us something to search for!" if params[:search].blank?
render 'index'
end
end
end
赤裸裸的在脑海里,那是在你得到编造之后
我肯定有人能回答这个问题
我在rails api中看到了after_commit,但没有任何示例说明如何在我的情况下使用它,或者即使它是我所需要的
Kind reards我可以想到基于java脚本的解决方案(但不是rails)
HTH如果我理解正确,您可以通过GET请求(在本例中,您不需要flash消息)或填写了:search字段的POST表单来访问操作“索引” 您可以使用
request.POST?
(也存在request.get?
,request.put?
,等等)检查您是否在POST请求中
class SearchesController
我删除了
呈现“索引”
,我认为它没有用。一个简单的解决方案是在搜索表单中添加一个隐藏字段,并检查该值是否存在,而不是实际的搜索字符串
看法
没有为我工作。。使用get。当我访问页面时,仍然会显示Flash消息。这意味着您可以通过
if request.post代码>语句,这很奇怪。闪光信息可以设置在其他地方?我可以告诉你这一条会让我困扰一段时间。不知道发生了什么。我觉得这很有趣,这是一个非常简单的解决方案。你一定是个解决问题的高手。我使用了if参数[:search].blank?&&改为使用params[:search],这样,如果用户输入了一个不存在的用户,我的另一条flash消息就会显示出来。谢谢。很乐意帮忙!我实际上认为我有一个更简单的解决方案,不需要隐藏字段。。。您可以检查params[:search].nil?
。如果请求不是通过搜索表单发出的,并且params[:search].blank?&&,则应为真!params[:search].nil?
对于空搜索是真的。这很有效。甚至更好。最初我确实尝试了params[:search].nil?但我没想到会像你刚才那样利用这一结果为你带来好处。这个解决方案更好,因为我不需要隐藏字段。
flash[:error] = "Please give us something to search for!" if params[:search].blank? after_get
class SearchesController < ApplicationController
def index
@default_image = "/assets/default_avatar.jpg"
if request.post?
@users = User.search params[:search]
if @users.empty? || params[:search].blank?
flash[:error] = "Sorry no user(s) found!" if @users.empty?
flash[:error] = "Please give us something to search for!" if params[:search].blank?
end
end
end
end
<%= hidden_field_tag :searching, true %>
flash[:error] = "Please give us something to search for!" if params[:searching]