Rails:我想为资源添加索引:符号路由

时间:2012-06-15 02:55:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 routes

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

resource :subscriptions 

resources: subscriptions 

它破坏了我已经实现的关于destroy的一些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

1 个答案:

答案 0 :(得分:0)

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