diff --git a/app/views/polls/_poll_subnav.html.erb b/app/views/polls/_poll_subnav.html.erb index 28340b9b6..e50d64e0a 100644 --- a/app/views/polls/_poll_subnav.html.erb +++ b/app/views/polls/_poll_subnav.html.erb @@ -8,7 +8,7 @@

<%= t("polls.show.results_menu") %>

<% else %> -
  • <%= link_to t("polls.show.results_menu"), results_poll_path(id: @poll.slug) %>
  • +
  • <%= link_to t("polls.show.results_menu"), results_poll_path(id: @poll.slug || @poll.id) %>
  • <% end %> <% end %> @@ -18,7 +18,7 @@

    <%= t("polls.show.stats_menu") %>

    <% else %> -
  • <%= link_to t("polls.show.stats_menu"), stats_poll_path(id: @poll.slug) %>
  • +
  • <%= link_to t("polls.show.stats_menu"), stats_poll_path(id: @poll.slug || @poll.id) %>
  • <% end %> <% end %> @@ -27,7 +27,7 @@

    <%= t("polls.show.info_menu") %>

    <% else %> -
  • <%= link_to t("polls.show.info_menu"), poll_path(id: @poll.slug) %>
  • +
  • <%= link_to t("polls.show.info_menu"), poll_path(id: @poll.slug || @poll.id) %>
  • <% end %> diff --git a/spec/features/polls/polls_spec.rb b/spec/features/polls/polls_spec.rb index 77abe0100..f9c420076 100644 --- a/spec/features/polls/polls_spec.rb +++ b/spec/features/polls/polls_spec.rb @@ -492,5 +492,20 @@ feature "Polls" do expect(page).not_to have_content("Poll results") expect(page).not_to have_content("Participation statistics") end + + scenario "Generates navigation links for polls without a slug" do + poll = create(:poll, :expired, results_enabled: true, stats_enabled: true) + poll.update_column(:slug, nil) + + visit poll_path(poll) + + expect(page).to have_link "Participation statistics" + expect(page).to have_link "Poll results" + + click_link "Poll results" + + expect(page).to have_link "Information" + end + end end