[Help] With no persistence, instances share among actions failed


My problem instance’s properties failed to share among the actions.
e.g. In action ‘collect’, I created an “CD” instance with some
"Album"s as its properties
using one-many relationship provided by rails API.
Before saving to the db, I just pass the ‘CD’ instance to action
‘show’, using @instance_var.
But I can’t get properties information using ‘cd.albums’, it alway
return an empty array.

The reason why the objects do not get persisted is that modification
of objects is necessary.

Why can’t I navigate through the relation and How can I pass around
the instance without?


class Cd < ActiveRecord::Base
has_many :albums

class Album < ActiveRecord::Base
belongs_to :cd

in action “collect”

@cd = Cd.new
Dir.foreach(Dir.pwd) do | dir |
logger.debug “found directory : [#{dir}]”
if dir != “.” && dir != “…”
# collect album inf
raw_info = dir
@al = Album.new
@al.name = dir.to_s
@al.cd = @cd
logger.debug “Checking album[#{@al.name}]'s belonging
logger.debug “Find album folder [#{dir}], thus cd
contains [#{@cd.albums}]”

Processing MusicInventoryController#collect (for at
2009-01-08 14:13:14) [GET]
found directory : [.]
found directory : […]
found directory : [20090101]
Checking album[20090101]'s belonging [test]
Find album folder [20090101], thus cd contains []
Rendering music_inventory/show

On Jan 8, 6:47 am, “J.C. Zhu” [email protected] wrote:

You never save the @al object, so it’s not going to magically appear
in @cd.albums. If you want to add an unsaved object to @cd.albums you
can do


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