I'd recommend creating an attr_accessor for :primary on your Title
model.
In your form you could do something like:
f.object.roles.each do |role|
f.radio_button :primary, :role.id
f.label :primary

which should have the desired behavior.

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Search Discussions

  • Gauthier D. at Dec 26, 2012 at 5:57 pm

    Samantha John wrote in post #1032986:
    I'd recommend creating an attr_accessor for :primary on your Title
    model.
    In your form you could do something like:
    f.object.roles.each do |role|
    f.radio_button :primary, :role.id
    f.label :primary

    which should have the desired behavior.
    This solution does not work with newly added nested objects as they
    don't have an ID yet (with cocoon/railscasts way nested forms handling).

    I've asked a question about the same issue here :
    http://stackoverflow.com/questions/14043884/radio-buttons-grouped-over-multiple-nested-form-entries

    --
    Posted via http://www.ruby-forum.com/.

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Walter Lee Davis at Dec 26, 2012 at 7:01 pm

    On Dec 26, 2012, at 12:56 PM, Gauthier D. wrote:

    Samantha John wrote in post #1032986:
    I'd recommend creating an attr_accessor for :primary on your Title
    model.
    In your form you could do something like:
    f.object.roles.each do |role|
    f.radio_button :primary, :role.id
    f.label :primary

    which should have the desired behavior.
    This solution does not work with newly added nested objects as they
    don't have an ID yet (with cocoon/railscasts way nested forms handling).

    I've asked a question about the same issue here :
    http://stackoverflow.com/questions/14043884/radio-buttons-grouped-over-multiple-nested-form-entries
    I ended up solving this in my application by using an after_create hook to set the primary person to whichever person was added first, and then allowing the radio button to change this during any subsequent edit. The radio buttons are not even shown until the parent record is persisted. Not a perfect solution, but one that has actually fit into the workflow very nicely, since the (human) editor seems to think that way (adding the author first) while creating new titles.

    Walter

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Gauthier D. at Dec 27, 2012 at 11:33 am

    Walter Davis wrote in post #1090281:
    On Dec 26, 2012, at 12:56 PM, Gauthier D. wrote:

    don't have an ID yet (with cocoon/railscasts way nested forms handling).

    I've asked a question about the same issue here :
    http://stackoverflow.com/questions/14043884/radio-buttons-grouped-over-multiple-nested-form-entries
    I ended up solving this in my application by using an after_create hook
    to set the primary person to whichever person was added first, and then
    allowing the radio button to change this during any subsequent edit. The
    radio buttons are not even shown until the parent record is persisted.
    Not a perfect solution, but one that has actually fit into the workflow
    very nicely, since the (human) editor seems to think that way (adding
    the author first) while creating new titles.

    Walter
    Seems that you're the same person who answered on Stackoverflow ;o)

    This workaround is unfortunately not compatible with my workflow since
    my app has to be simple and fast...users will not accept a second edit
    to set the main address...

    The sad thing is that this is really easy to do in a hand-made
    form...but I can't get rid of nested forms that brings lots more than
    this little issue!

    I'm working on a JS workaround, handling "virtual" radio buttons groups,
    based on "data-radio-group" attribute instead of "name".

    This is not as clean as I'd like but it's compatible with my workflow,
    and logical for the user...

    In case someone is interested, here is my really simple code to handle
    virtual radio buttons groups (it's Coffeescript + jQuery) :

    jQuery ->
    $("input[data-radio-group]").on 'change', (e) ->
    $("input[data-radio-group='" + $(e.target).data('radioGroup') +
    "']").attr('checked', false)
    $(e.target).attr('checked', true)

    When you change an input with "data-radio-group" arttributes, it
    unchecks other inputs with same group value and checks the one changed
    (so that you can't unselect all options).

    Compared to "real" radio groups, I loose the ability to quickly get the
    "group value" but I don't need that in my case.

    --
    Posted via http://www.ruby-forum.com/.

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Walter Lee Davis at Dec 27, 2012 at 5:15 pm

    On Dec 27, 2012, at 6:33 AM, Gauthier D. wrote:

    Compared to "real" radio groups, I loose the ability to quickly get the
    "group value" but I don't need that in my case.
    You might try this:

    $$('input[data-radio-group="foo"][checked]').first().getValue();

    That's Prototype, but you should be able to translate to jQuery -- they both use Sizzle under the hood, and the selector's the thing that matters here.

    Walter

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Walter Lee Davis at Dec 27, 2012 at 5:20 pm

    On Dec 27, 2012, at 12:14 PM, Walter Lee Davis wrote:

    On Dec 27, 2012, at 6:33 AM, Gauthier D. wrote:

    Compared to "real" radio groups, I loose the ability to quickly get the
    "group value" but I don't need that in my case.
    You might try this:

    $$('input[data-radio-group="foo"][checked]').first().getValue();
    Or maybe it's

    $$('input[data-radio-group="foo"]:checked').first().getValue();

    Try both.

    Walter
    That's Prototype, but you should be able to translate to jQuery -- they both use Sizzle under the hood, and the selector's the thing that matters here.

    Walter

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.
  • Dheeraj Kumar at Dec 28, 2012 at 3:07 am
    The second selector is correct. Converting it to jQuery, it's

    $('input[data-radio-group="foo"]:checked').first().val();

    --
    Dheeraj Kumar

    On Thursday 27 December 2012 at 10:50 PM, Walter Lee Davis wrote:

    On Dec 27, 2012, at 12:14 PM, Walter Lee Davis wrote:

    On Dec 27, 2012, at 6:33 AM, Gauthier D. wrote:

    Compared to "real" radio groups, I loose the ability to quickly get the
    "group value" but I don't need that in my case.

    You might try this:

    $$('input[data-radio-group="foo"][checked]').first().getValue();
    Or maybe it's

    $$('input[data-radio-group="foo"]:checked').first().getValue();

    Try both.

    Walter
    That's Prototype, but you should be able to translate to jQuery -- they both use Sizzle under the hood, and the selector's the thing that matters here.

    Walter

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com (mailto:rubyonrails-talk@googlegroups.com).
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com (mailto:rubyonrails-talk+unsubscribe@googlegroups.com).
    For more options, visit https://groups.google.com/groups/opt_out.

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com (mailto:rubyonrails-talk@googlegroups.com).
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com (mailto:rubyonrails-talk+unsubscribe@googlegroups.com).
    For more options, visit https://groups.google.com/groups/opt_out.

    --
    You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
    To post to this group, send email to rubyonrails-talk@googlegroups.com.
    To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
    For more options, visit https://groups.google.com/groups/opt_out.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedNov 21, '11 at 10:23p
activeDec 28, '12 at 3:07a
posts7
users3
websiterubyonrails.org
irc#RubyOnRails

People

Translate

site design / logo © 2021 Grokbase