设计会在我的rails应用中产生故障

时间:2012-07-17 13:24:32

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

我已经发布了一个问题,我发布在这里:Weird route malfunction, mix between devise and own controller
我希望这只是一次性的问题,但设计让我发疯了!

如果我这样做,一切都很好

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

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

1 个答案:

答案 0 :(得分:2)

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

user_idea_subscriptions_path(current_user, :idea_id => @idea)

然后用户未登录,因此current_user为零