Hi, in my controller, for an edit action, I''m getting the whole list of values from a table with types: @cm_board_types = CmBoardType.find(:all, :conditions => [''project_id=?'', @project.id]) My problem is that when I display an existing record (to edit it) with the type_id field: the select displayed does not have the html "selected" clause, so this combo always shows the first value in the recovered list (@cm_board_types)... I''ve lot of similar cases working perfectly, but this... I can not find where is the problem. Instead of showing this: <option value="1">Type Name for Value 1</option> <option selected="selected" value="2">Type Name for Value 2</option> is showing this: <option value="1">Type Name for Value 1</option> <option value="2">Type Name for Value 2</option> About the form: <p><%= f.select :type_id, (@cm_board_types.collect {|p| [p.name, p.id]}), :required => true %></p> Thanks in advance -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Please, make sure that the object in your form_for helper: 1. object.response_to? "type_id" 2. object.type_id == 2 -- Thanks, Ivan Povalyukhin On Dec 21, 11:37 pm, Alfredo Bonilla <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hi, > > in my controller, for an edit action, I''m getting the whole list of > values from a table with types: > > @cm_board_types = CmBoardType.find(:all, :conditions => [''project_id=?'', > @project.id]) > > My problem is that when I display an existing record (to edit it) with > the type_id field: the select displayed does not have the html > "selected" clause, so this combo always shows the first value in the > recovered list (@cm_board_types)... I''ve lot of similar cases working > perfectly, but this... I can not find where is the problem. > > Instead of showing this: > <option value="1">Type Name for Value 1</option> > <option selected="selected" value="2">Type Name for Value 2</option> > > is showing this: > <option value="1">Type Name for Value 1</option> > <option value="2">Type Name for Value 2</option> > > About the form: > <p><%= f.select :type_id, (@cm_board_types.collect {|p| [p.name, > p.id]}), :required => true %></p> > > Thanks in advance > > -- > Posted viahttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.
Thanks for your answer. But, I don''t know exactly what you mean. First is renderized the edit.rhtml form. From this one: ... <%= render :partial => ''edit'' %> ... The partial _edit.rhtml form: <% labelled_tabular_form_for :cm_board, @cm_board, :url => {:action => ''edit'', :id => @cm_board}, :html => {:id => ''edit-cm_board-form'', :class => nil, :multipart => true} do |f| %> ... and finally the _attributes.rhtml form: <% fields_for :cm_board, @cm_board, :builder => TabularFormBuilder do |f| %> ... The labelled_tabular_form_for helper looks like: def labelled_tabular_form_for(name, object, options, &proc) options[:html] ||= {} options[:html][:class] = ''tabular'' unless options[:html].has_key?(:class) form_for(name, object, options.merge({ :builder => TabularFormBuilder, :lang => current_language}), &proc) end where can I search for the info you request? -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Sorry, for the confusion :) I meant that the object, you are passing to the form_for (in your case it is @cm_board) should have the attribute "type_id" and the value stored in that attribute should be equal to the index of the option you want to have selected. Here is the short note from the documentation: " select(object, method, choices, options = {}, html_options = {}) Create a select tag and a series of contained option tags for the provided object and method. The option currently held by the object will be selected, provided that the object is available. See options_for_select for the required format of the choices parameter. Example with @post.person_id => 1: select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { :include_blank => true }) could become: <select name="post[person_id]"> <option value=""></option> <option value="1" selected="selected">David</option> <option value="2">Sam</option> <option value="3">Tobias</option> </select> This can be used to provide a default set of options in the standard way: before rendering the create form, a new model instance is assigned the default options and bound to @model_name. Usually this model is not saved to the database. Instead, a second model object is created when the create request is received. This allows the user to submit a form page more than once with the expected results of creating multiple records. In addition, this allows a single partial to be used to generate form inputs for both edit and create forms. By default, post.person_id is the selected option. Specify :selected => value to use a different selection or :selected => nil to leave all options unselected. Similarly, you can specify values to be disabled in the option tags by specifying the :disabled option. This can either be a single value or an array of values to be disabled." -- Thanks, Ivan Povalyukhin On Dec 22, 7:53 am, Alfredo Bonilla <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Thanks for your answer. But, I don''t know exactly what you mean. > > First is renderized the edit.rhtml form. From this one: > ... > <%= render :partial => ''edit'' %> > ... > > The partial _edit.rhtml form: > <% labelled_tabular_form_for :cm_board, @cm_board, > :url => {:action => ''edit'', :id => @cm_board}, > :html => {:id => ''edit-cm_board-form'', > :class => nil, > :multipart => true} do |f| %> > ... > > and finally the _attributes.rhtml form: > <% fields_for :cm_board, @cm_board, :builder => TabularFormBuilder do > |f| %> > ... > > The labelled_tabular_form_for helper looks like: > def labelled_tabular_form_for(name, object, options, &proc) > options[:html] ||= {} > options[:html][:class] = ''tabular'' unless > options[:html].has_key?(:class) > form_for(name, object, options.merge({ :builder => TabularFormBuilder, > :lang => current_language}), &proc) > end > > where can I search for the info you request? > > -- > Posted viahttp://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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.