0

所以这是场景:

在我的合作伙伴模型的显示视图中,我需要一个链接到另一个模型的删除方法,即我的 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 发送到参数,但没有成功。

这是我的推荐?方法如果您需要知道,它只返回一个 RecommendPartner 对象。在我的 Partner.rb 中:

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

是的,RecommendPartner 属于用户和合作伙伴模型。

最后是我的推荐伙伴控制器销毁方法:

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] 是 nil 并且我不能重定向回伙伴显示我是... =/

有什么建议么?

提前致谢。

4

2 回答 2

2

所以感谢@hakunin 的评论,这是最好的解决方案

更改控制器,以便我不需要 p_id 参数:

  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 %>

效果很好!干杯!

于 2012-06-29T00:42:52.887 回答
1

你可以试试这个吗?:

<%= button_to 'Destroy!', partner_path(@partner.recommended?(current_user), 'p_id' => @partner.id), :method => 'delete', :confirm => 'Are your sure?' %>
于 2012-06-29T00:20:27.800 回答