用户订阅了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
答案 0 :(得分:0)
使用多个资源的默认资源路由,正确的销毁路由为subscription_path(id), method: :delete
。请注意,订阅是单数。对于这些路由,销毁路径通常与show和update路径相同,但使用的是http方法。