Вот типичный link_to_unless:
link_to_unless
<%= link_to_unless(@current_user.nil?, "Reply", { :action => "reply" }) %>
Как мне сделать то же самое с блоком?
# non-functional <%= link_to_unless(@current_user.nil?, ..., { :action => "reply" }) do %> ... <% end %>
link_to_unless уже принимает блок. Однако для доступа к параметру заголовка ссылки необходимо передать аргумент блока.
link_to_unless(@current_user.nil?, "Name", { :action => "reply" }) do |name| link_to name, some_path
На данный момент вы должны спросить себя, проще ли это сделать, и если / если утверждение.
Поместите это в помощник
def link_to_unless_with_block condition, uri, &block link_to_unless condition, capture(&block), uri end
должно работать .. хотя не проверено