![](/img/trans.png)
[英]NoMethodError, undefined method in my controller Ruby on Rails
[英]NoMethodError undefined method '-@' NoMethodError in Controller Ruby on Rails
上下文:我從存儲庫中提取了最新代碼,並嘗試確保將要推送的更改將與該版本的代碼一起使用。 這是Ruby on Rails應用程序。 另外值得注意的是,當運行我從網絡上提取的主應用程序時,不會顯示此錯誤。 但是,如果我運行自己的分支或克隆到環境中的主分支,則對於我嘗試的每個URL總是會顯示錯誤。 這樣就對了。
問題:一旦我轉到localhost:3000,就會收到以下錯誤:
NoMethodError in HomeController#index
undefined method `-@' for #<ActionDispatch::Response:0x64fd460>
我嘗試過的事情:我在#rubyonrails IRC頻道上問了我的問題,但沒人能確定Full Trace中發生了什么(我沒有在這里發布它,因為我不確定什么是最好的方法在此處執行此操作;在代碼塊或塊引用中看起來不是很好)。 我看了我的HomeController的index方法,它的定義如下:
def index
@groups = @current_user.groups
@things = Thing.where(:group_id => @groups.map{|e|e.id})
end
我也在Google周圍搜索,沒有找到解決此問題所需的工具。
到目前為止,我學到的是: -@是運算符。 假設Ruby擁有
variable = variable + 1
許多其他語言具有:
variable++
這是這種情況的示例: false的未定義方法“ + @”:FalseClass(NoMethodError)ruby
問題:關於如何在此處查找問題, 有人是否有其他建議? 此外,如果我可以輕松地在此處以美學上令人愉悅的方式格式化“完整軌跡”,有人會告訴我如何做嗎? 我對此不知所措:(
更新(2/8/2013):看來問題不一定存在於HomeController或home / index.html.erb視圖中。 我試圖通過有效的操作訪問任何url,並且將“ NoMethodError in ...”更改為相應的Controller#index時,也會發生相同的錯誤。
更新(2013/2/9):由於無論我嘗試導航到哪個URL,都會發生此錯誤,因此我決定在config文件夾中的route.rb文件中查找。 這次我通過紅寶石而不是命令行運行服務器,這使我更容易閱讀。 我開始查看所有吐出的內容,並發現一條有趣的行,其中包括:
["private-key looking thing"] [127.0.0.1] Started GET "/" for 127.0.0.1 at 2013-02-09 18:20:52 -0700
似乎在route.rb中存在語法錯誤(這是我目前最好的猜測)。 這並不能解釋為什么這只是在本地環境中使用相同代碼集的問題,但是我還需要解決什么?
在我瀏覽此文件時,有沒有人有任何建議的內容? 不太確定要查找有關錯誤的內容。 Rubymines的檢查工作將我所有的雙引號都轉換為單引號,並且實際上沒有什么可抱怨的。
預先感謝傑克·史密斯
我猜想它也可能是相應視圖頁面Home / index.html.haml中的語法錯誤。我懷疑變量調用前面有意外的“-”。 我試圖在Rails平台上模擬類似的情況,並在瀏覽器上查看下一頁
undefined method `-@' for false:FalseClass
正確的代碼行
%h1 All Movies
= "filtervalue=#{@isFilterOld}"
= "Sortvalue=#{@isSortOld}"
編輯以模擬錯誤(觀察isFilterOld變量前面的-)
%h1 All Movies
= "filtervalue=#{-@isFilterOld}"
= "Sortvalue=#{@isSortOld}"
我已經解決了這個問題!
bundle install
表明它仍然可以找到gem) bundle install
有人知道為什么會這樣嗎? 我不知道這時是否可以縮小是哪個gem導致了問題,因為該應用程序現在正在運行(我可以使用相應的視圖訪問所有URL)。 如果問題再次出現,我將一個接一個地刪除寶石,以找出至少一個對我造成問題的寶石。 但是,如果有人對此有任何見識,我想,更多的人將不僅僅可以得到我一個更詳盡的答案。 感謝到目前為止所提供的所有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.