フォームに正しく表示され、正しく保存されているネストされたデータがあるフォームがあります。しかし、私は今このデータを表示しようと努力しており、私は本当に戦っています。Railsにネストされたデータを表示するために戦う
だから私は、多くのデータを持っていますが、データの2つの特定の種類に焦点を当てます:
私は、ユーザーを持ち、ユーザーがプロジェクトを作成することができます。私はプロジェクトに関連して戦ってる2つのデータフィールドは、以下のとおりです。
- 各プロジェクトが予算(プロジェクトテーブルの上budget_idとして保存され、そしてそのために、私は予算の名前を呼びたい) を持っています
- 各プロジェクトfeatures_projectsによる機能の束が、結合テーブル
プロジェクトモデル
class Project < ApplicationRecord
belongs_to :user
has_one :budget
has_and_belongs_to_many :features
end
予算モデル
class Budget < ApplicationRecord
belongs_to :project
end
は、インデックスを表示するプロジェクトコントローラー
def index
@projects = Project.all
end
プロジェクトビューからインデックスメソッドのモデル
class Feature < ApplicationRecord
has_and_belongs_to_many :projects
end
抽出機能
<div class="container dashboard">
<div class="center">
<h1> Your Projects</h1>
</div>
<table class="table table-striped">
<thead>
<tr>
<th>Description</th>
<th>Budget</th>
<th>User_id</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @projects.each do |project| %>
<tr>
<% if project.user == current_user %>
<td><%= project.description %></td>
<td><%= project.budget_id %></td>
<td><%= project.user.email if project.user %></td>
<td><%= link_to 'Show', project, class: "btn btn-info btn-sm" %></td>
<td><%= link_to 'Edit', edit_project_path(project), class: "btn btn-warning btn-sm" %></td>
<td><%= link_to 'Destroy', project, class: "btn btn-danger btn-sm", method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>
</tr>
<% end %>
</tbody>
</table>
<br>
<div class="center">
<%= link_to 'New Project', new_project_path, class:"btn btn-lg btn-success" %>
</div>
</div>
基本的には、各プロジェクトに保存されている予算と、選択した機能のリストを表示できます。私はソリューションからオンラインでいくつかのことを試してきましたが、運がなかったのです:(恐らくおそらくインデックスメソッドの下で@budget変数を作成する必要があると思います。 !
ActiveRecord::StatementInvalid in Projects#index
PG::UndefinedColumn: ERROR: column budgets.project_id does not exist
LINE 1: SELECT "budgets".* FROM "budgets" WHERE "budgets"."project_...
恐ろしい感謝を示すために、質問を更新しました!それはそれをした! – Stephen