【问题标题】:how to set flash error in rails app如何在 Rails 应用程序中设置 Flash 错误
【发布时间】:2013-05-29 15:44:02
【问题描述】:

我正在做一些简单的应用程序,我不会是某种翻译应用程序,所以我有一个搜索选项和添加翻译选项。我的搜索有问题。当我点击搜索时没有任何单词,它向我显示了一个翻译列表。当我查找一个不在数据库中的单词时,我希望那里有一个 flash 错误,就像我有它一样。

我的模特

class Translation < ActiveRecord::Base


attr_accessible :text_english, :text_polish
validates_presence_of :text_english, :text_polish
validates :text_polish, :text_english, :uniqueness => true
 def self.search(search)
    if search
      where("text_english LIKE ? OR text_polish LIKE ?", "%#{search.strip}%", "%#{search.strip}%")
    else
        scooped
    end
  end
end

在我的控制器中

# GET /translations/search
 def search
   @translations = Translation.search(params[:search])
   if !@translations.empty?
     respond_to do |format|
       format.html
     end
   else
     flash[:error] = "NO TRANSLATIONS"
     redirect_to new_translation_url
   end
  end
end

和我在索引中的搜索表单

<h1>Words</h1>
<%= form_tag search_translations_path, method: :get do %>
  <div class="field">
    <%= text_field_tag :search, params[:search] %>
    <button type="submit" class="btn">Search</button> 
 <% end %>

感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails ruby search


    【解决方案1】:

    你有几个选项,一个相当简单的选项是在你的控制器中添加几行来说明没有参数[:search]

    # GET /translations/search
     def search
       if params[:search].blank?
         flash[:error] = "A WORD TO TRANSLATE IS REQUIRED"
         redirect_to new_translation_url
       else
         @translations = Translation.search(params[:search])
         if !@translations.empty?
           respond_to do |format|
             format.html
           end
         else
           flash[:error] = "NO TRANSLATIONS"
           redirect_to new_translation_url
         end
       end
     end
    

    要记住的重要一点是,在您的代码中不允许任何可能重定向或呈现两次的路径。因此if params[:search].blank? .. else

    【讨论】:

    • 我推荐redirect_to SOME_PATH, :flash =&gt; { :error =&gt; "SOMETHING" },更干净一点。
    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多