Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Allow calls to instantiate_record in ActiveResource for Custom Actions

#350

Right now, to consume custom actions, you have to call .get(:custom_action). This returns a hash, as opposed to a record like .find does.

For my purposes, I need to instantiate the resulting hash into a record. However, there's no way for me to do that because instantiate_record is private. Same goes for instantiate_collection.

Is there a way we could let MyActiveResource call the instantiate methods, by making them protected, for example?

My current workaround is creating my own get_record method to replace .get. However, it doesn't have a lot of the goodness that instantiate_record has, and is a pretty brittle solution all around

def get_record(path)

MyActiveResource.new(get(path))

end

Reported by Matthew Moore · June 6th, 2008 @ 12:48 AM

State: stale
Milestone: none
Assigned to: nobody
Importance: none

Activity

  1. jblanche
    jblanche
    • Tag set to activeresource, enhancement

    I have searched a lot to solve this problem too but in fact there is no problem :)

    You just have to write something like

    @songs = Song.find(:all, :from => :list_by_artist, :params => {:artist_id => 2})

    and you'll get your records instantiated.

    July 22nd, 2008 @ 12:13 AM

  2. josh
    josh
    • State changed from new to stale

    Staling out, please reopen if this is still a problem.

    October 28th, 2008 @ 04:30 PM