2016-08-25 1 views
0

フォームに正しく表示され、正しく保存されているネストされたデータがあるフォームがあります。しかし、私は今このデータを表示しようと努力しており、私は本当に戦っています。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_... 

答えて

0

ます:?誰もが親切に

本当にありがとうございました

project.budget.nameを使用してUPDATE は、次のエラーを明らかに私はこれを行うだろうか説明するのに役立つ可能性がありthで:

Each project has a budget (stored as a budget_id on the project table, and for which I want to call the name of the budget)

これはhas_one作品は、それは予算のテーブルの上にproject_idを期待する方法ではありません。

belongs_toを使用する必要があると思います。

http://guides.rubyonrails.org/association_basics.html#the-has-one-association

+1

恐ろしい感謝を示すために、質問を更新しました!それはそれをした! – Stephen

0
project.budget.name #give name of budget 
project.features do |feature| 
    feature.name # gives feature name 
end 
+0

おかげで、私はそれを試してみましたが、エラーが発生しました - 私はエラーに – Stephen

関連する問題