我對下面的代碼做了什麼錯誤處於絕對的損失。我試圖在我的應用程序中實現一個消息傳遞系統,但希望它處理不同類型的消息。在這種情況下,我想創建':message_type => 1'的「請求」消息。Ruby on Rails:在控制器中使用方法名稱'request'失敗
不像我通常使用的那樣使用表單,我想在鏈接被點擊的時候創建這個實例。這裏是我有它設置在展會ERB文件的「用戶」:
<%=link_to "Send friend request", :action=>"request", :controller => "messages", :id => @user.id %>
,並在控制器:
def request
@message = Message.new(:sender_id => current_user.id,:user_id => params[:id],:message_type => 1)
if @message.save
flash[:notice] = 'Message was successfully created.'
redirect_to message_path(@message)
else
redirect_to message_path(@message)
end
end
這將導致以下錯誤消息:未定義的方法`重寫「對零:NilClass與跟蹤看起來像
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in `method_missing'
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/base.rb:634:in `url_for'
(eval):16:in `message_path'
app/controllers/messages_controller.rb:11:in `request'
我用map.resources:在routes.rb中文件的消息,並做了相應:Has_或許有幫助許多和:用戶和消息模型中的belongs_to關聯。
編輯:另外需要注意的是,保存是成功的,因爲一旦根地址被手動輸入到地址欄中,就會顯示「閃存」通知,表示保存已完成。使用開發控制檯確實存在,所以有一些與重定向混亂的東西。
哇。謝謝。這是一個非常令人沮喪的考驗。我希望這些錯誤信息更具描述性。這很不吉利 – JackCA 2010-05-18 14:44:55
這個「其他」塊仍然是一個等待發生的錯誤,正如我在答案中指出的那樣。我很高興你能解決你的直接問題。 – jdl 2010-05-18 16:15:25
是的,我實際上只是將兩個重定向都改爲「redirect_to:back」,但謝謝! – JackCA 2010-05-18 17:28:15