2011-09-27 22 views
0

如果我使用的是Mongo,我發現了一個gazillion的答案,但是由於我沒有使用mongo,因此我沒有看到這些方法。未定義的方法`to_key'爲 - 不使用MONGO

基本上我已經定義了具有非常簡單的方法的report_controller.rb:

def donations_by_season 
    @donations = Donation  
end 

和一個非常簡單的報告/ donations_by_season.html.erb如下:

<%= form_for @donations do |f| %> 
    Stuff Will go here... such as fields to select a date for the season we wish to view. 
<% end %> 

沒有報告模型,只是一個控制器和視圖。

但是,當我嘗試查看/報告/ donations_by_season 我立刻得到:

未定義的方法to_key' for #<Class:0x00000114d85918>

我應該怎麼做才能解決這個問題?由於沒有與報告關聯的模型,我是否正確地做了我的表格?

+0

即使數據庫中沒有相應的表格,我是否應該創建報告模型? –

回答

2

你不應該指定一個實例變量來指向這樣的類對象。您可能需要:

def donations_by_season 
    @donations = Donation.all 
end 

注意.all而不是將其留空。你也可以做.new或其他一些方法,這取決於你想要做什麼。

+0

好的。我同意我不希望它是空白的。將它更改爲全部都會使查詢運行時間過長,因爲我在那裏有數十萬條記錄。但它確實提醒我,一旦季節參數存在,在那裏使用示波器將會有多好。像Donation.season(:param [:season])或我想象的東西。 –

+0

'Donation.where(:season => params [:season])'會讓你成爲那裏的一部分,而'.limit(100)'將解決你的「太多記錄」問題。 – coreyward

+0

捐贈後沒有任何內容導致原始錯誤消息,謝謝! –

相關問題