2017-06-07 104 views
1

所以,我想要做的是測試如果輸入有一個大於號,但包括?沒有工作。即使我只是測試if是否「真實」,它也不起作用。代碼如下包括?不工作的軌道

if @search.select.instance_of?(Integer) 
    if @search.search.include?(">") 
    @gsearch = @search.search.gsub(">","") 
    @results = @model.where("#{@param} > ?", @newsearch.to_i) 
    else 
    @results = @model.where("#{@param}": @search.search) 
    end 
end 

因此,首先,如果「選擇」,它正在測試是一個整數(這是在我的測試),未來如果有一個「>」符號,它正在測試(有,但沒有找到)然後它顯示搜索結果。我不知道什麼是錯的,我很抱歉提出問題,遲到了,我厭倦了這個哈哈。任何幫助表示讚賞!

編輯:沒有錯誤出現,它只是顯示一個空白頁...

+0

你完全確定這個'if @ search.select.instance_of?(Integer)'能讓你迴歸真實嗎?如果不嘗試使用'is_a?' –

+0

嗯,你是對的,但他們都返回爲false ...我想我知道這個問題(也許?),但我怎麼檢查一個對象參數是否採用整數作爲輸入? – Zaviermiller

+0

如果我沒有犯錯,那就需要你給它的任何東西。但是你可以使用'param.class'來檢查,它會告訴你它是什麼類。 –

回答

0
2.3.1 :001 > "asdf>".include?(">") 
=> true 
2.3.1 :002 > "asdf".include?(">") 
=> false 

看起來工作給我。我的猜測是你需要檢查@search.search是什麼,看它裏面是否有>

如果是這樣,我能想到的唯一的其他解釋是可能有多個>字符花哨的unicode版本。

+0

非常感謝您的快速響應!是的,包括在其他地方的作品,但它不適用於這一點,它非常奇怪......噢,我會繼續努力。再次感謝! – Zaviermiller

+0

嗯,你確定'@ search.search'是你想要的嗎?看起來像一個有趣的名字 – Mirror318

+0

是的,它非常的輸入(射擊爲什麼我沒有把它命名爲哈哈),當我把它輸入時,我輸入它爲「> 40」 – Zaviermiller