Couchrest_modelをCouchDBへのRailsORMとして使用しています。Railsに2つの異なるCouchDBドキュメントからの情報の「結合」を実行させてビューを作成したいのですが、Railsに結合されたデータを自動取得させることができないようです。
関連する2つのモデルは次のとおりです。
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に、2つのモデルのデータを含むテーブルを表示したいと思います。
<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 %>
ベンダーモデルのベンダー文字列を表示したい。ビューでセレクターヘルパーを使用して、CouchDBを使用してモデル間で「結合された」情報を表示しましたが、ビューテーブルに文字列を出力するだけのこの一見単純なケースで結合する方法がわかりません。
インデックスに対応するパッケージコントローラーは次のとおりです。これはかなり標準的なものです。
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はそのようにベンダー情報を取得しません...