【问题标题】:Ruby datamapper associationsRuby 数据映射器关联
【发布时间】:2014-06-04 19:21:35
【问题描述】:

我刚刚学习 Ruby 和 datamapper,我已经阅读了 DataMapper 官方网站上关于关联的文档,但我仍然有两个问题。 首先,每当我添加关联对象时,显示所有对象时都看不到它。 我有像这样的测试类:

class Test
  include DataMapper::Resource
  property :id, Serial
  property :name, String
  has 1, :phonen, :through => Resource
end

然后是 phonen 类:

class Phonen
  include DataMapper::Resource
  property :id, Serial
  property :number, String
  belongs_to :test
end

然后我正在创建这 2 个对象

@test = Test.create(
  :name => "Name here"
)

@phone = Phonen.create(
  :number => "Phone number"
)

@test.phonen = @phone
@test.save

我想这样显示它们(我想返回 json)

get '/' do
  Test.all.to_json
end

我做错了什么?也许它与to_json有关... 说实话我不知道。。 但是我对这个主题还有一个问题,假设我设法连接了这两个类,如果我显示 JSON,我会得到Phonen { } 还是在类{ } 内? 我知道这可能很简单的问题,但我无法弄清楚。这就是为什么我决定问你们。感谢您的帮助

【问题讨论】:

  • 您不会获得嵌套的关联,您必须创建一个序列化程序或一个视图才能在 Test 类中重新创建音素。也许你可以阅读一些关于 jbuilder 的内容。
  • 酷,正是我想要的,谢谢

标签: ruby ruby-datamapper


【解决方案1】:

测试.all 当您尝试转换为 json 时,它以数组形式返回活动记录关联,而不是哈希。

你可以试试:

render json: Test.all

正如这个问题所问的:

Ruby array to JSON and Rails JSON rendering

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多