2013-10-22 64 views
0

您好我搜索了很多站點和視頻在軌道模型上,但無法找到答案,我有一個網址控制器和網址模型。在控制器我有這個Rails在模型驗證中搜索

def search 
@search_term = params[:q] 
st = "%#{params[:q]}%" 
@url = Url.where("email ILIKE ? or custref ILIKE ? or order_number ILIKE ? or url4 ILIKE ?   or trader_code ILIKE ? or trader_name ILIKE ?", st, st, st, st, st, st).order("date  DESC").page(params[:page]).per_page(25) 
respond_to do |format| 
    format.html 
    format.json {render json: @urls} 
end 
end 

和模型只是這個

class Url < ActiveRecord::Base 

    attr_accessible :order_number, :url1, :url2, :url3, :url4, :url5, :email, :custref,   :date, :trader_code, :trader_name 

def self.import(file) 
CSV.foreach(file.path, headers: true) do |row| 
    Url.create! row.to_hash 
end 
end 
belongs_to :user 
end 

然後我用一個部分來呈現的搜索框中的form_tag。

<%= form_tag("/search", :method => "get") do %> 

<%= label_tag(:q, "") %> 
<%= text_field_tag(:q) %> 
<%= submit_tag "Search" %> 

<% end %> 

我的問題是,我不知道如何驗證這個form_tag。 我需要驗證是否有一個有效的完整電子郵件地址輸入到搜索中,我需要驗證是否有8個字符輸入來搜索order_number。其餘的驗證我可以找出,但這兩個是最重要的。 我在railscast上觀看了active_attr的視頻,但它對我不起作用。 有沒有人在這之前做過這件事可以幫助我?

感謝

+0

本帖](http://stackoverflow.com/questions/5118203/how-do-i-validate運行驗證-a-non-model-form-in-rails-3/5118393#5118393)看起來像它有你所需要的。 – CoolTapes

+0

如何以及您想要驗證什麼?該字段的輸入?在服務器上?在客戶端?你想把東西去掉嗎? – phoet

+0

即時搜索兩欄,電子郵件和訂單號碼,所以我想確保人們輸入一個有效的電子郵件地址,並且訂單號碼需要是確切數量的字符,此刻如果您鍵入訂單的前4個字符數字,然後結果顯示db – user2791952

回答

0

另外,您可以在search方法urls_controller的

def search 
    @search_term = params[:q] 
    st = "%#{params[:q]}%" 

    validate_search_query @search_term 

    @url = Url.where("email ILIKE ? or custref ILIKE ? or order_number ILIKE ? or url4 ILIKE ?   or trader_code ILIKE ? or trader_name ILIKE ?", st, st, st, st, st, st).order("date  DESC").page(params[:page]).per_page(25) 
    # you can add if... then... block here to handle empty @url 
    respond_to do |format| 
    format.html 
    format.json {render json: @urls} # guess you should use @url here instead of @urls 
    end 
end 

def validate_search_query (query) 
    # validations for query 
    ... 
end 
+0

謝謝Leger,你有什麼想法,我將不得不進入那些空的部分驗證我在上面評論中談到的專欄。對不起,如果我聽起來很愚蠢,我只是習慣使用Rails – user2791952