所以這是場景:我可以向刪除方法發送一個參數嗎?
在我的合作伙伴模型的顯示視圖中,我需要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.如果您可以推薦partner = @ recommend_partner.partner並且根本不傳遞任何p_id,那麼做'partner = Partner.find(params [:p_id])'有什麼意義? 2.爲什麼不使用命名路由(你可以通過運行'rake routes'來找到它們)而不是'controller:...,action:...'hash? –
我沒有使用命名路由的原因是因爲參數ID! 非常愚蠢的我,因爲我可以像你說的那樣從推薦夥伴對象那裏得到合作伙伴!謝謝@hakunin – Breno