Reputation: 9415
I'm trying to create a block of ruby code for when a user clicks on the back button. I'm getting the error "undefined method `stringify_keys' for "/projects/11/steps/4":String". The code works when I get rid of the do and end. How do I add a do to a link_to?
<%= link_to 'Back', project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
<% end %>
Upvotes: 98
Views: 43533
Reputation: 10079
If you pass a block then do not pass the link name. Should be:
<%= link_to project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
Back
<% end %>
Upvotes: 20
Reputation: 16092
If you're using the block form of link_to
you can't have text content (the block is your text content). You'd need to do this:
<%= link_to project_step_path(@project, @project.steps.count-1), :class => "btn btn-small" do %>
Back
<% end %>
Typically this is used when you want to have images or other tags as the contents of the link. It's purely for display purposes. The block will not give you javascript-like functionality, so make sure additional display behavior is what you're looking for here :)
Upvotes: 232