Given the code below, it seems you're just starting using Rails and you still don't understand Rails basic concepts.

Shouldn't you consider posting in the user's mailing list first? It's more likely that you'll get better advices there than here...

After you get used to Rails, if you still have questions about how Rails should do things, then your questions will be better discussed here.

Cheers,
Rodrigo.

Em 03-03-2012 01:17, Mark Peterson escreveu:
Took longer than I thought to get a basic use case that fails. Scenario 2 below is the failure:

My Code:

class User < ActiveResource::Base
  self.site = "http://localhost:9000";
end

class Image < ActiveResource::Base
end

class ImagePage < ActiveResource::Base
  self.element_name = "image_page"
  self.collection_name = "irrelevant_never_used_in_this_manner"
end

class ApplicationController < ActionController::Base
  def index
Dir.glob("#{Rails.root}/app/models/*.rb").sort.each { |file| require_dependency file }
    user = User.find(123)
    p user
    render :text => "hello world"
  end
end

### Scenario 1 using remove_root in decode, user.json has "id" ###

def decode(json)
  Formats.remove_root(ActiveSupport::JSON.decode(json))
end

GET /users/123.json

"{\"id\":\"123\",\"image_page\":{\"images\":[{\"id\":123},{\"id\":456}],\"total\":2000,\"count\":2,\"start_index\":0}}"

p user = #<User:0x00000103ab6c98 @attributes={"id"=>"123", "image_page"=>#<ImagePage:0x00000103ab5cd0 @attributes={"images"=>[#<Image:0x00000103aac158 @attributes={"id"=>123}, @prefix_options={}, @persisted=false>, #<Image:0x00000103aabed8 @attributes={"id"=>456}, @prefix_options={}, @persisted=false>], "total"=>2000, "count"=>2, "start_index"=>0}, @prefix_options={}, @persisted=false>}, @prefix_options={}, @persisted=true>


### Scenario 2 using remove_root in decode, user.json does not have "id" ###

def decode(json)
  Formats.remove_root(ActiveSupport::JSON.decode(json))
end

GET /users/123.json

"{\"image_page\":{\"images\":[{\"id\":123},{\"id\":456}],\"total\":2000,\"count\":2,\"start_index\":0}}"

p user = #<User:0x00000101133cb8 @attributes={"images"=>[#<Image:0x000001011327a0 @attributes={"id"=>123}, @prefix_options={}, @persisted=false>, #<Image:0x00000103a49e40 @attributes={"id"=>456}, @prefix_options={}, @persisted=false>], "total"=>2000, "count"=>2, "start_index"=>0}, @prefix_options={}, @persisted=true>


### Scenario 3 not using remove_root in decode, user.json has "id" ###

def decode(json)
  ActiveSupport::JSON.decode(json)
end

GET /users/123.json

"{\"id\":\"123\",\"image_page\":{\"images\":[{\"id\":123},{\"id\":456}],\"total\":2000,\"count\":2,\"start_index\":0}}"

p user = #<User:0x0000010455a168 @attributes={"id"=>"123", "image_page"=>#<ImagePage:0x00000104559880 @attributes={"images"=>[#<Image:0x00000104557c88 @attributes={"id"=>123}, @prefix_options={}, @persisted=false>, #<Image:0x00000104557a08 @attributes={"id"=>456}, @prefix_options={}, @persisted=false>], "total"=>2000, "count"=>2, "start_index"=>0}, @prefix_options={}, @persisted=false>}, @prefix_options={}, @persisted=true>


### Scenario 4 not using remove_root in decode, user.json does not have "id" ###

def decode(json)
  ActiveSupport::JSON.decode(json)
end

GET /users/123.json

"{\"image_page\":{\"images\":[{\"id\":123},{\"id\":456}],\"total\":2000,\"count\":2,\"start_index\":0}}"

p user = #<User:0x000001044166d0 @attributes={"image_page"=>#<ImagePage:0x00000104415f28 @attributes={"images"=>[#<Image:0x00000104414920 @attributes={"id"=>123}, @prefix_options={}, @persisted=false>, #<Image:0x000001044146a0 @attributes={"id"=>456}, @prefix_options={}, @persisted=false>], "total"=>2000, "count"=>2, "start_index"=>0}, @prefix_options={}, @persisted=false>}, @prefix_options={}, @persisted=true>


--
You received this message because you are subscribed to the Google Groups "Ruby on 
Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to