2012-06-28 89 views
0

所以這是場景:我可以向刪除方法發送一個參數嗎?

在我的合作伙伴模型的顯示視圖中,我需要link_to爲其他模型(我的RecommendPartner模型)的刪除方法。

但是我需要在銷燬方法結束後返回到我的合作伙伴展示。

給代碼!!

我的合作伙伴展示視圖(如果這是非常醜陋的,我接受建議):

<div> 
    <%= link_to 'Destroy!', @partner.recommended?(current_user), confirm: 'Are your sure?', method: 'delete', :controller => "recommend_partners", :action => "destroy", :p_id => @partner.id %> 
    </div> 

正如你看到的,我嘗試將發送:P_ID到PARAMS,但沒有成功。

這是我的推薦?方法,如果你需要知道,它只是返回一個RecommendPartner對象。在我的Partner.rb中:

def recommended? (user) 
    RecommendPartner.find_by_user_id_and_partner_id(user.id,self.id) 
end 

是的,RecommendPartner屬於用戶和合作夥伴模型。

最後,這裏是我recommend_partners_controler破壞方法:

def destroy 
    @recommend_partner = RecommendPartner.find(params[:id]) 
    partner = Partner.find(params[:p_id]) 
    @recommend_partner.destroy 

    respond_to do |format| 
    format.html { redirect_to partner } 
    format.json { head :no_content } 
    end 
end 

所以PARAMS [:P_ID]是零,我不能回重定向到合作伙伴展示我是... =/

任何建議?

在此先感謝。

+1

1.如果您可以推薦partner = @ recommend_partner.partner並且根本不傳遞任何p_id,那麼做'partner = Partner.find(params [:p_id])'有什麼意義? 2.爲什麼不使用命名路由(你可以通過運行'rake routes'來找到它們)而不是'controller:...,action:...'hash? –

+0

我沒有使用命名路由的原因是因爲參數ID! 非常愚蠢的我,因爲我可以像你說的那樣從推薦夥伴對象那裏得到合作伙伴!謝謝@hakunin – Breno

回答

1

所以感謝@ hakunin的評論,這是最好的解決辦法

改變控制器,這樣我就不會需要的p_id PARAM:

def destroy 
    @recommend_partner = RecommendPartner.find(params[:id]) 
    @partner = @recommend_partner.partner 
    @recommend_partner.destroy 

    respond_to do |format| 
     format.html { redirect_to @partner } 
     format.json { head :no_content } 
    end 
    end 

然後修改link_to方法,使其看起來像這樣:

<%= link_to 'Destroy!', @partner.recommended?(current_user), confirm: 'Are you sure?', method: :delete %> 

工程太棒了! 乾杯!

1

你可以試試這個?:

<%= button_to 'Destroy!', partner_path(@partner.recommended?(current_user), 'p_id' => @partner.id), :method => 'delete', :confirm => 'Are your sure?' %> 
+0

由於我修改了控制器,所以我不需要p_id,我只是這樣調用它: '<%= link_to'Destroy!',@ partner.recommended?(current_user),confirm:'Are你確定?',方法::刪除%>' 它工作正常! – Breno

相關問題