# Forms Collecting data and basic ruby concept

**URL:** <https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311>\
**Category:** Rails\
**Created:** [April 30, 2008, 7:02pm UTC](https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311 "2008-04-30T19:02:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rushnosh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58956e/32.png) [@rushnosh](https://www.ruby-forum.com/u/rushnosh)\
**Post date:** [April 30, 2008, 7:02pm UTC](https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311/1 "2008-04-30T19:02:52Z")

</div>

i am not grasping a very basic concept here.

i have 3 models A, B, C

i have a form that is created via controller A but i need to put the  
data in model B, C

so all the input fields belong to either B or C

how can i accomplish this so that i can fill the users input if  
validation does not succeed.

using a model A to form A i use @input\_info = A.new(params[:a]) but of  
course this will not work.

can someone lead me the right way.

---

<div class="post-metadata">

**Author:** ![rushnosh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58956e/32.png) [@rushnosh](https://www.ruby-forum.com/u/rushnosh)\
**Post date:** [May 2, 2008, 6:38am UTC](https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311/2 "2008-05-02T06:38:54Z")

</div>

That’s pretty confusing. Could you explain it a little more concretely?

---

<div class="post-metadata">

**Author:** ![rushnosh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58956e/32.png) [@rushnosh](https://www.ruby-forum.com/u/rushnosh)\
**Post date:** [May 2, 2008, 8:01am UTC](https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311/3 "2008-05-02T08:01:01Z")

</div>

rushnosh wrote:

> i am not grasping a very basic concept here.
> 
> i have 3 models A, B, C
> 
> i have a form that is created via controller A but i need to put the  
> data in model B, C

ANSWER : NO MATTER, YOU CAN DO IT  
EXAMPLE :

class AController \< ApplicationController

def create  
@data = B.new(params[:a])

```
if @data.save
   flash[:notice] = " Hello A Form, now you are in B"
end

```

end

end

> so all the input fields belong to either B or C
> 
> how can i accomplish this so that i can fill the users input if  
> validation does not succeed.

For additional attributes that have no existed in table you can use  
att\_reader :new\_attribute\_name

and validation you can put in model/ AR:

private

def validate  
if new\_attribute\_name.nil?  
errors.add (“Hey new attribute”, “you cant be blank.”)  
end  
end

GoodLick 😃  
Reinhart  
[http://teapoci.blogspot.com](http://teapoci.blogspot.com)

---

<div class="post-metadata">

**Author:** ![rushnosh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/58956e/32.png) [@rushnosh](https://www.ruby-forum.com/u/rushnosh)\
**Post date:** [June 28, 2008, 5:34pm UTC](https://www.ruby-forum.com/t/forms-collecting-data-and-basic-ruby-concept/136311/4 "2008-06-28T17:34:22Z")

</div>

Look into the fields\_for helper. It allows you to specify fields for a  
different model within a form\_for block.

I’d also suggest looking at [railscasts.com](http://railscasts.com), where there’s several  
screencasts on creating complex forms.

Michael S.  
[www.BuildingWebApps.com](http://www.BuildingWebApps.com) (Rails developer portal)  
[www.LearningRails.com](http://www.LearningRails.com) (screencasts)
