我使用 Couchrest_model 作为 CouchDB 的 Rails ORM。我想让 Rails 对来自两个不同 CouchDB 文档的信息进行“连接”以获取视图,但似乎无法让 Rails 自动检索连接的数据。
这是两个相关的模型:
class Package < CouchRest::Model::Base
belongs_to :vendor
property :shortcode, String
property :pins, Integer
end
class Vendor < CouchRest::Model::Base
property :vendor, String
timestamps!
end
因此,现在在 /packages 的 index.html.erb 中,我想显示一个包含两个模型的数据的表格:
<h1>Listing packages</h1>
<table>
<tr>
<th>Shortcode</th>
<th>Pins</th>
<th>Vendor</th>
<th></th>
</tr>
<% @packages.each do |package| %>
<tr>
<td><%= package.shortcode %></td>
<td><%= package.pins %></td>
<td><%= package.vendor %></td>
<td><%= link_to 'Show', package %></td>
<td><%= link_to 'Edit', edit_package_path(package) %></td>
<td><%= link_to 'Destroy', package, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Package', new_package_path %>
我想显示供应商模型中的供应商字符串。我在视图中使用了一个选择器助手来显示跨模型的“连接”信息,但我不知道如何在这个看似简单的情况下加入,即在视图表中打印字符串。
这是与索引对应的包控制器,这是非常标准的:
class PackagesController < ApplicationController
# GET /packages
# GET /packages.json
def index
@packages = Package.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @packages }
end
end
我试过做标准
@packages = Package.all(:include => :vendor)
但 Couchrest_model 不会以这种方式获取供应商信息......