2012-05-31 92 views
1

我是新来的回报率,我想建立一个使用的ActiveResource的ActiveRecordRuby on Rails的没有的ActiveResource工作

我有一个简单的Rails项目托管在localhost上简单的Web应用程序:3001。该应用程序有welcome控制器,看起来像这样

class WelcomeController < ApplicationController 
    def index 
    @persons = [] 
    num = 0 
    until num < 10 do 
     @persons[num] = Person.new 
     @persons[num].name = [*('A'..'Z')].sample(8).join 
     @persons[num].surname = [*('A'..'Z')].sample(64).join 
     @persons[num].dob = Time.at(rand * Time.now.to_i)  
     num+1  
    end 

    respond_to do |format| 
     format.xml { render :xml => @persons} 
    end 
    end 
end 

Person类看起来是这样的:

class Person 
    attr_accessor :name, :surname, :dob 
end 

此Rails应用程序应该为REST服务使用托管在localhost其他应用:3000

的模型在字母应用中看起来像这样:

class Person < ActiveResource::Base 
    self.site = "http://localhost:3001" 
end 

现在,我的问题是如何在视图中列出所有10个人?

我曾尝试使用人模型的ActiveResource,亲自控制器:

class PersonController < ApplicationController 
    def index 
    @persons= Person.find(":all") 
    end 
end 

通过我得到消息的ActiveResource :: ResourceNotFound在PersonController#指数

在此先感谢。

+0

的ActiveResource最近从Rails项目中删除。你可能想看看替代品。 –

回答

0

首先,我不确定你为什么要在WelcomeController中创建10个人,但这里有一个更好的方法。

class WelcomeController < ApplicationController 
    def index 
    10.times do 
     person = Person.new 
     person.name = [*('A'..'Z')].sample(8).join 
     person.surname = [*('A'..'Z')].sample(64).join 
     person.dob = Time.at(rand * Time.now.to_i) 
     person.save # This part is necessary for data to persist between requests 
    end 

    @persons = Person.all 

    respond_to do |format| 
     format.xml { render :xml => @persons} 
    end 
    end 
end 

然后,当然在你PersonController,你可以使用

@persons = Person.all 

@persons = Person.find(:all) 
+0

WelcomeController只是方便,因为它建议confi/routes.rb非常感谢我会立即尝试这个。 – eomeroff

+0

我在线person.save – eomeroff

+0

我得到ArgumentError那么其他事情正在进行与您的代码,但说“我得到ArgumentError”没有多大帮助。 –