2012-05-31 120 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」沒有多大幫助。 –