我正試圖在我的Rails應用程序中實現夢幻般的Mailboxer gem。我想在加載表單的用戶個人資料頁面上包含一個按鈕,以便向該用戶發送私人消息。我試圖用這個問題中發佈的代碼作爲指導,沒有任何運氣: Rails mailboxer gem, send message to user using form。在Rails應用中實現Mailboxer gem。 ActiveRecord :: RecordNotFound
點擊用戶頁面上的按鈕將加載私人信息表單。但是,單擊該表格上的發送按鈕,將顯示以下錯誤:
ActiveRecord::RecordNotFound in MessagesController#create
Couldn't find User without an ID
下面是相關的代碼。我會後的代碼樣本下面我的想法:
消息控制器
class MessagesController < ApplicationController
def index
end
# GET /message/new
def new
@user = User.find(params[:user])
@message = current_user.messages.new
# display form
end
# POST /message/create
def create
@user = User.find(params[:user])
@message = current_user.connections.build(params[:message])
#current_user.send_message(@user, params[:body], params[:subject])
end
end
new.html.erb(郵件視圖 - 新)
<%= form_for(@message) do |f| %>
<div>Subject
<%= f.text_field :subject %></div>
<div>Message
<%= f.text_area :body%></div>
<%= f.hidden_field(:user, :value => @user.id) %>
<p><%= f.submit 'Send message'%></p>
<% end %>
的Mailboxer文檔推薦 current_user.send_message(@user, params[:body], params[:subject])
(我註釋掉了)創建函數,但然後我無法通過在「新」功能GET獲得的用戶。我試圖使用新函數將它發送到創建函數,但我完全卡住了。爲什麼我的當前創建函數不能從新函數中找到用戶ID?
僅供參考,這裏是一個鏈接到創業板上市的文檔: https://github.com/ging/mailboxer
謝謝!
編輯:用戶的個人資料頁上的按鈕代碼
<%= button_to "Send a message", new_message_path(:user => @user) %>
相關路線
resources :messages do
member do
post :reply
post :trash
post :untrash
post :new
end
感謝您的回覆!我忘了發佈用戶個人資料頁面上的按鈕代碼。我有類似於你發佈的內容:'<%= button_to「發送消息」,new_message_path(:user => @user)%>' – winston
我開始認爲問題是在消息/新一頁。當我點擊Submit按鈕,並且出現錯誤時,瀏覽器URL欄中的URL是'http:// localhost:3000/messages'。不應該去/消息/創建? – winston
嗨@詹姆斯,我已經更新了我的答案,希望能夠糾正你正在嘗試做的一些事情。讓我知道如果你仍然需要幫助 – toobulkeh