Alright, shall i give it a go then? I think it would really help a lot in
DRY'ing things up.
Op dinsdag 25 oktober 2016 16:18:37 UTC+2 schreef Gabriel Sobrinho:
>
> This shouldn't impact the implementation, it could be literally anything
> (helper method, object method, local variable or anything).
>
> The specification would be { classname: true/false }.
>
> link_to user.name, user_path(user), class: { btn: true, active:
> user.active? } // => object method call
> link_to user.name, user_path(user), class: { btn: true, active:
> active_user?(user) } // => helper method call
> link_to user.name, user_path(user), class: { btn: true, active: active }
> // => local variable call
>
>
> Also, the link_to can be in the view or in a helper method.
>
> If you want to see this working, you can implement a prototype on
> application helper like this (untested and not fully compatible with
> current link_to implementation (need to accepts blocks, string keys, etc)):
>
> module ApplicationHelper
> def link_to(content, path, options = {})
> klass = if Hash === options[:class]
> parse_class_hash(options[:class])
> else
> options[:class]
> end
>
> super(content, path, options.merge(class: klass))
> end
>
> def parse_class_hash(classes)
> string = []
>
> classes.each_pair do |name, value|
> string << name if value
> end
>
> string.join(' ')
> end
> end
>
>
> On 25 Oct 2016, at 12:08, Rafael Mendonça França <[email protected]
> <javascript:>> wrote:
>
> There is an open question here. From here those conditional methods are
> coming from? From helpers modules? This will add a lot of this kind of
> methods in the global namespace since helpers are global and will make code
> harder to understand.
>
> On Mon, Oct 24, 2016 at 10:12 PM <[email protected] <javascript:>>
> wrote:
>
>> Heya,
>>
>> Setting condition classes is a huge pain in rails at the moment, or maybe
>> i am missing it but i can't see to find it. borrowed from react components
>> kind of style.
>>
>> I want something like this (the class selected is only added if the value
>> is true)
>>
>> link_to("Homepage", root_path, class: {selected: selected?})
>>
>> -> a href class="selected" and other
>>
>> You can do the same thing to add multiple classes too
>>
>> link_to("Hello", root_path, class: {class: {btn:true, selected:
>> selected?}}
>>
>> I think this would be awesome, anything reasons why we shouldn't
>> implement this?
>>
>> Cheers,
>>
>> - Emile
>>
>> --
>> 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 [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/rubyonrails-core.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ruby on Rails: Core" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/rubyonrails-core/GtAQDk0SCA0/unsubscribe
> .
> To unsubscribe from this group and all its topics, send an email to
> [email protected] <javascript:>.
> To post to this group, send email to [email protected]
> <javascript:>.
> Visit this group at https://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.