How do you access params that are both model based and non model based?

Hi all

Apologies first of all if this it the third time of seeing this, I
posted
previously but didn’t see it on the googlegroup archive or current
discussions.

Ive got a form that’s based on a model that I need to put a drop down
box and additional text field to build the description for the item.

heres some quick code

View

<%= form_for (@shape) do |f| %>
<%= f.text_field :description %>
<%= select_tag “shape_name”, “roundsquare</
option>triangular” %>
<%= text_field_tag “shape_code” =>

Controller

@shape.new
@shape.description = params[:description]
@shape.shape = “#{params[:shape_name]} #{params[:shape_code]}”
@shape.save

What happens is I get the shape.shape set right (to the name from the
select box and the code from the text field) but description is always
empty,

Heres whats in the params when I do a raise shape.to_yaml to debug it.

{“shape_name”=>“triangular”,
“shape_code”=>“shape code is here”,
“order”=>{“description”=>“this is a description”}}

Can someone point out how I should be accessing the params so I can
set the description of the shape?

Many thanks

Jonathan G.

Jonathan G. wrote:

{“shape_name”=>“triangular”,
“shape_code”=>“shape code is here”,
“order”=>{“description”=>“this is a description”}}

Can someone point out how I should be accessing the params so I can
set the description of the shape?

Many thanks

Jonathan G.

@shape.description = params[:order][:description]

Many thanks for that! Just what I needed to know. I thought I tried
that,
but I guess I didnt.

Along the same lines how about when Ive got a select_date on the form?
The
data comes back in the params as
{stuff => “something”,
order=> {“thedate(3i)” =>“2009”,
“thedate(2i)” => “10”,
“thedate(1i)” => “1”}}

Ive tried

param[:order]:thedate
and
params[:order][:thedate(3i)]

and a load of other ways that are definately wrong! Ive also looked
through
the ruby book and the agile ruby on rails book, but not sure what to
look
for so cant help myself here.

Can someone point me in the right direction?

Many thanks

Jonathan G.

On Wed, Aug 5, 2009 at 8:54 PM, Ilan B.
<[email protected]

To post a followup. So the archive is here.

Seems the problem is when not doing mass assignment active record does
the
date object creation.

This blog post
http://blog.springenwerk.com/2008/05/set-date-attribute-from-dateselect.htmlexplains
is much better than I can but lets say it solves it.

So updating a date or datetime field in a model from params yourself is
not
easy but can be done with the above link

(thats for the search next time!)

Thanks to all that helped on this.

Jonathan G.

Hi all,
I have two fields in a form.
One text field non asociated to the model for the user type a value. the
view is:
<%= text_field_tag ‘item_cod’,’’, :size => 3 %>

Other a field with a select list with codes, names for the user select
from. The view is:

<%= f.select :item_id, Item.select_list, :size => 40 %>

item_id is the real field of my model.

I want the following behavior.

  1. If the user type a code into the text_field tag -> Update the list so
    the user view the corresponding name of the item they type.
  2. If the user select from the list -> Update the text field with the
    code corresponding to the name selected. (this is the easy part)

My form works fine with one Observe field for the :item_id list but I
can’t do work the point 1.

Thanks in advance,
FF

I want the

Please don’t hijack threads. It will hide your problem, and will not
endear you to folks on most mailing lists, including this one.

Best regards,
Bill

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs