1

用户订阅了提要,但是当我更改时(如 stackO 上其他地方的建议)

resource :subscriptions 

resources: subscriptions 

它破坏了我已经实现的关于销毁的一些 ajax 功能。

我希望能够链接到 /subscriptions/ 并让用户能够查看他们的所有订阅。问题是,当我真正想要#index 时,它正在将我带到订阅#show。

我该怎么做?

这是我的 AJAX:

<div id="subscribe" class="shadow">
<% if session[:read_random]
    unless is_subscribed?(session[:read_random].last)%>
            <%= link_to 'Subscribe', subscriptions_path(feed_id: session[:read_random].last), method: :post, remote: :true %>

    <% else %>
        <%= link_to 'Unsubscribe', subscriptions_path(feed_id: session[:read_random].last), method: :delete, remote: :true %>

<%  end
   end %>
</div>

这是我的销毁方法

def destroy

      if params[:feed_id]
          #this is the ajax call
          @subscription = Subscription.find_by_user_id_and_feed_id(session[:user_id], params[:feed_id])
      else
          #this is the index destroy call (unsubscribe)
          @subscription = Subscription.find(params[:id])
      end
  @subscription.destroy

  respond_to do |format|
    format.html { redirect_to request.referer }
    format.js
    format.json { head :no_content }
  end
end
4

1 回答 1

0

使用复数资源的默认资源路由,正确的销毁路由将是subscription_path(id), method: :delete. 请注意,订阅是单数的。对于这些路由,destroy 路径通常与 show 和 update 路径相同,但使用的 http 方法除外。

于 2012-06-15T05:34:07.160 回答