2013-04-17 24 views
0

對於我的收件箱,我創建了一種從收件箱中刪除多條郵件的方法。現在我正在嘗試設置如何刪除當前用戶正在查看的消息。信息底部應該有一個鏈接,其內容爲Delete。當用戶點擊Delete鏈接時,郵件將被刪除,用戶將被重定向到他們的收件箱。創建刪除鏈接時未定義的郵件局部變量

將代碼添加到控制器時,我現在無法查看收件箱消息。試圖查看消息時,我收到undefined local variable or method "message" error,頁面標題爲NameError in Messages#show

任何人都知道我可以如何解決這個問題?

新的代碼添加到控制器:

def destroy 
    @message = Message.find(params[:id]) 
    @message.destroy 
    flash[:notice] = "Successfully deleted message." 
    redirect_to user_messages_path(@user, @messages) 
    end 

消息控制器:

Class MessagesController < ApplicationController 
    before_filter :set_user 

    def show 
    @message = Message.find(params[:id]) 
    @message.readingmessage if @message.recipient == current_user 
    end 

    def destroy 
    @message = Message.find(params[:id]) 
    @message.destroy 
    flash[:notice] = "Successfully deleted message." 
    redirect_to user_messages_path(@user, @messages) 
    end 

    private 
    def set_user 
     @user = current_user 
    end 
end 

show.html:

<%= link_to "remove", message, :confirm => 'Are you sure?', :method => :delete %> 

路線:

Dating::Application.routes.draw do 
    get 'signup' => 'users#new' 
    get 'login' => 'sessions#new' 
    get 'logout' => 'sessions#destroy' 
    get 'edit' => 'users#edit' 
    get "/profile/:id" => "users#show" 
    get "profile/:id/settings" => 'users#edit' 
    match 'settings/:id' => 'users#settings' 

    resources :users 
    resources :sessions 
    resources :password_resets 
    resources :galleries 
    resources :photos 
    resources :searches 

    resources :users do 
     get 'settings', on: :member 
    end 

    root to: 'users#new' 
    root to: 'galleries#index' 

    resources :users do |user| 
    resources :messages do 
     collection do 
     post 'delete_multiple' 
     end 
    end 
    end 

回答

3

我認爲你需要使用@message在你的link_to這樣的:

<%= link_to "remove", @message, :confirm => 'Are you sure?', :method => :delete %> 
+0

給出未定義的方法'message_path」的錯誤。 – pwz2000

+0

你的'routes.rb'文件中有':messages'資源嗎? – PinnyM

+0

是的,路線剛剛添加到原始文章。 – pwz2000