Ruby on rails 如何在rails应用程序中设置flash错误
我在做一个简单的应用,我不会成为一个翻译应用,所以我有一个搜索选项和添加翻译选项。我的搜索有问题。当我在没有任何单词的情况下点击搜索时,它会显示一个翻译列表。我希望那里有一个flash错误,就像我有一样,当我查找数据库中没有的单词时 我的模型Ruby on rails 如何在rails应用程序中设置flash错误,ruby-on-rails,ruby,search,Ruby On Rails,Ruby,Search,我在做一个简单的应用,我不会成为一个翻译应用,所以我有一个搜索选项和添加翻译选项。我的搜索有问题。当我在没有任何单词的情况下点击搜索时,它会显示一个翻译列表。我希望那里有一个flash错误,就像我有一样,当我查找数据库中没有的单词时 我的模型 class Translation < ActiveRecord::Base attr_accessible :text_english, :text_polish validates_presence_of :text_english, :te
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
以及我在索引中的搜索表单
<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 %>
单词
搜寻
thanx提供任何帮助。您有几个选项,其中一个相当简单的选项是向控制器添加几行代码,以说明没有参数[: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参数[:search].blank。。否则
我建议重定向到某个路径,:flash=>{:error=>“SOMETHING”}
,稍微干净一点。
# 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