Generate an array of model instances

Hello,

In my app there is a one-to-many relation between members and
member_phones.
Following code works in ruby 1.8.7, rails 3.0.3 but fails on heroku.

@member = Member.new
@[email protected]_phones.build

but this works on heroku:

@member = Member.new
@member_phone=MemberPhone.new

But this way I have specify

@member_phone.save!

otherwise it is not saved in database.

Now, my problem is that if thats the way I have to go then , how do I
create a collection/hash/array of member_phones so that I can accept
mutliple member_phones on the view. Again a problem here as I can’t use
formtastic gem because for one it would require a lot of custom styling
and I already have an application template for the whole application
that I have to use. And , also the hosting service which I may end up
finally end up to host my app will not allow any gems installation.
Therefore, I am stuck with default setup and javascript/jquery use to
customise my views.

Thanks.

On 21 June 2012 18:50, renu mehta [email protected] wrote:

Hello,

In my app there is a one-to-many relation between members and
member_phones.
Following code works in ruby 1.8.7, rails 3.0.3 but fails on heroku.

@member = Member.new
@[email protected]_phones.build

In what way does it fail?

Colin

On 21 June 2012 22:58, renu mehta [email protected] wrote:

Please quote the previous message when replying, it makes it easier to
follow the thread. Remember that this is an email list not a forum
(though you may be accessing it through a forum. Thanks.

NoMethodError (undefined method member_phones' for #<Member:0x000000022d3938>): app/controllers/home_controller.rb:43:in member’

Please post the code of member.rb and member_phones.rb (snip out any
irrelevant methods that may be there). Also the code from
home_controller around the error. Thanks.

Colin

NoMethodError (undefined method member_phones' for #<Member:0x000000022d3938>): app/controllers/home_controller.rb:43:inmember’

Thats the error that I get.

On 22 June 2012 17:28, renu mehta [email protected] wrote:

@member.family_id = random_number(5)
“input_text” %>

  </label>

class MemberPhone < ActiveRecord::Base

belongs_to :member, :foreign_key => “member_id”

The foreign_key spec here is not required as member_id is the default.
It should not do any harm however.

end

class Member < ActiveRecord::Base
alias_attribute :family_member_id, :member_id

What is the purpose of the above line? Does the members table have a
column with one of those names? If so, why?

has_many :member_addresses , :foreign_key => “family_member_id”

has_many :member_phones , :foreign_key => “family_member_id”

The above line says that member_phones (not members) has a column
family_member_id. Has it?

Colin

Colin L. wrote in post #1065643:

On 21 June 2012 22:58, renu mehta [email protected] wrote:

Please quote the previous message when replying, it makes it easier to
follow the thread. Remember that this is an email list not a forum
(though you may be accessing it through a forum. Thanks.

NoMethodError (undefined method member_phones' for #<Member:0x000000022d3938>): app/controllers/home_controller.rb:43:in member’

Please post the code of member.rb and member_phones.rb (snip out any
irrelevant methods that may be there). Also the code from
home_controller around the error. Thanks.

Colin

home_controller
def member

@member = Member.new
@member.family_id = random_number(5)
@member_id=random_number(6)
@[email protected]_phones.build
 end

And the view member.html.erb has :

Home : <%= text_field "member_phone", "home_phone", :class => "input_text" %>
         </label>

class MemberPhone < ActiveRecord::Base

belongs_to :member, :foreign_key => “member_id”

end

class Member < ActiveRecord::Base
alias_attribute :family_member_id, :member_id

has_many :member_addresses , :foreign_key => “family_member_id”

has_many :member_phones , :foreign_key => “family_member_id”

accepts_nested_attributes_for :member_addresses
accepts_nested_attributes_for :member_phones

end