【问题标题】:Ruby on Rails ActiveResource not workingRuby on Rails ActiveResource 不工作
【发布时间】:2012-06-01 07:03:05
【问题描述】:

我是 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

Person 类如下所示:

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

提前致谢。

【问题讨论】:

  • ActiveResource 最近已从 Rails 项目中删除。您可能想寻找替代方案。

标签: ruby-on-rails activerecord activeresource


【解决方案1】:

首先,我不确定你为什么要在 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)

【讨论】:

  • WelcomeController 很方便,因为它在 confi/routes.rb 中建议,非常感谢,我会立即尝试。
  • 我在 person.save 行收到 ArgumentError
  • 那么你的代码还有其他问题,但是说“我收到 ArgumentError”并没有多大帮助。
  • 他使用的是 ActiveResource,而不是 ActiveRecord。
猜你喜欢
  • 2014-01-05
  • 2023-04-08
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2020-02-28
  • 1970-01-01
相关资源
最近更新 更多