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.