2012-08-06 91 views
1

我一直在爲這個問題尋找一個解決方案,但沒有白費。基本上,我試圖使用Active資源如某些搜索做:Rails Active Resources忽略條件

File.find(:all, :params => {:file_name => "blah"}) 

或:

File.find(:all, :conditions => {:file_name => "blah"}) 

文件是活動的資源對象

我希望被過濾的結果,但輸出與File.find(:all)(條件完全忽略)相同。有沒有人遇到過類似的問題?我使用的是rails 3.0.7,這個代碼是從一個正在與另一個使用AR的API服務器通信的web應用程序調用的。

任何建議將非常感激

感謝

+0

什麼'File.find至少有助於(:所有{:FILE_NAME => 「嗒嗒」})'(即不使用':PARAMS =>') 。另外,我假設你的意思是':file_name'而不是':filename'或者一些變體) – Zabba 2012-08-06 02:41:21

+0

另外,只是FYI,[ActiveResource現在已經從Rails中移除](https://github.com/rails/rails/commit/f1637bf2bb00490203503fbd943b73406e043d1d)。 – Zabba 2012-08-06 02:45:04

+0

嗨Zabba,你是對的,AR現在是一個包含在我的Gemfile中的寶石。 ':file_name'在我的例子中是正確的,儘管它也可以是':filename',因爲它只是一個列名。更具體地說,API應用程序使用續集(不是活動記錄)。沒有':params =>'我得到一個零值。這個AR行爲有點不可思議 – kasperite 2012-08-06 03:07:55

回答

1

不知道如果我得到你的觀點。我認爲這應該這樣做:

File.where file_name: "blah" 
+0

http://guides.rubyonrails.org/active_record_querying.html#conditions – 2012-08-06 01:31:18

+0

對不起,我應該提到文件是一個活動資源對象,所以Active Record查詢不起作用 – kasperite 2012-08-06 01:55:50

0

我有相同類型的設置,並噸在我的應用搜索,其中較大的結果需要得到過濾的 - 但是,我一直在使用API​​服務器端已經實現這一點。

所以調用會是什麼樣子:

File.find(:all, :params => {:file_name => "blah"}) 

這將由軌道被翻譯成一些搜索網址:

http://someip:port/someurl/files/?file_name=blah 

所以API將與file_name參數接受這一點,並篩選結果集基於該搜索,然後將這些過濾結果返回給Rails服務器。

我希望以某種方式:)