0

我已经在这里发布了一个关于设计的问题:奇怪的路线故障,在设计和自己的控制器之间混合
我希望这只是一个一次性问题,但设计让我发疯了!

如果我这样做,一切都好

<% if user_signed_in? %>
  <% if current_user.ideas.include?(@idea) %>
    <%= button_to 'Remove from Favorites', user_idea_subscription(@idea.id), method:    :delete%>
  <% else %>
    <%= button_to 'Add to Favorites', user_idea_subscriptions_path(current_user, :idea_id => @idea) %>
  <% end %>
<% end %>

但如果我这样做:

<% if user_signed_in? and current_user.ideas.include?(@idea) %>
  <%= button_to 'Remove from Favorites', user_idea_subscription(@idea.id), method:    :delete%>
<% else %>
  <%= button_to 'Add to Favorites', user_idea_subscriptions_path(current_user, :idea_id => @idea) %>
<% end %>

然后我有这个错误:

No route matches {:controller=>"idea_subscriptions", :idea_id=>#<Idea id: 12, name: "Chute libre", description: "50sec a 50m/s", created_at: "2012-07-12 10:02:30", updated_at: "2012-07-12 10:02:30">}

一切都应该没问题,但为什么我会收到那个错误?(除了没有关于错误的其他信息)
感谢您的帮助和我的理智!

4

1 回答 1

2

我认为这是正常行为,因为在第二种情况下你试图打电话

user_idea_subscriptions_path(current_user, :idea_id => @idea)

那么用户没有登录,所以current_user是零

于 2012-07-17T13:32:57.523 回答