On Thu, Nov 5, 2015 at 9:26 AM, Kevin Deisz <kevin.de...@gmail.com> wrote:
> Hi there, > > Seems like in the positive condition, link_to_if and link_to_unless are > inconsistent. When I send a block to link_to (or for that matter anything > else that calls content_tag) the block is used to determine the content in > the case that "name" is not provided. It gets around this by shifting the > args, effectively, as in (html_options, options, name = options, name, > block if block_given?). > > However, with link_to_if/link_to_unless, when the condition is met it > always uses the main content. As in: > > link_to_if(true, root_path) do > My Link <%= some_helper %> > end > > looks like "/" in the UI and the block is ignored. I'd love to fix this, > but want to make sure there isn't some good reason first. > > In this use case, how would one specify the content to be used if the condition is `false`? I can't think of a way that isn't clunkier than the plain ERB way to accomplish the same thing: <% if condition %> <%= link_to foo_path do %> Content for true <% end %> <% else %> Content for false <% end %> IMO, `link_to_if` and `link_to_unless` are intended to capture a common pattern that would otherwise lead to repeated strings / code. If you need a behavior that's well outside of that pattern, just write ERB / helpers / etc. --Matt Jones -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-core+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-core@googlegroups.com. Visit this group at http://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.