1

我是 RoR 的新手,我正在尝试构建使用 ActiveResource ActiveRecord 的简单 Web 应用程序

我在 localhost:3001 上托管了一个简单的 Rails 项目。该应用程序具有如下所示的欢迎控制器

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

人员类如下所示:

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

此 Rails 应用程序应用作托管在 localhost:3000 上的其他应用程序的 REST 服务

字母应用程序中的模型如下所示:

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

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

我尝试在人控制器中使用人模型作为 ActiveResource:

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

通过我在 PersonController#index 中收到消息 ActiveResource::ResourceNotFound

提前致谢。

4

1 回答 1

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)
于 2012-05-31T23:03:05.237 回答