2016-07-05 10 views
0

プロジェクトの状態を関係で表示する際に問題が発生しました。Rails:すべてのプロジェクトを表示中にエラーが発生しました

task.rbモデル:

class Task < ActiveRecord::Base 
    belongs_to :project 
    has_one :status 
    has_one :kind 


    validates :title, presence: true, length: { maximum: 200 } 
    validates :alias, length: { maximum: 200 } 
    validates :mail_cc, length: { maximum: 200 } 
    validates :description, presence: true 
    validates :keywords, length: { maximum: 200 } 
end 

status.rbモデル:

を閉じA)オープンB)試験C):

ステータス値を持つ3つのオブジェクトを有する

class Status < ActiveRecord::Base 
    belongs_to :task 
    belongs_to :project 
    =begin 
    OPEN 
    TESTING 
    CLOSED 
    =end 
validates :value, presence: true 

projects/index.html.erb

<%= link_to "New", new_project_path %> | 
<%= link_to "Active", projects_path(active: "active") %> | 
<%= link_to "All", projects_path %> 

<hr> 

<h3>Projects</h3> 

<hr> 

<table class="table table-hover"> 

<thead> 
    <tr> 
    <th>Name</th> 
    <th>Status</th> 
    <th>Actions</th> 
    </tr> 
</thead> 
<% @projects.each do |project| %> 
<tr> 
    <th><%= link_to project.name, project %></th> 
    <th><%= project.status.value %></th> 
    <th> 
    <%= link_to "Show", '#' %> | 
    <%= link_to "Destroy", project_path(project), method: :delete %> 
    </th> 
</tr> 
<% end %> 

</table> 

ステータスがすべての場合は正常です。 「オープン」または「テスト」または「クローズド」ステータスの別のプロジェクトを作成すると、エラーが発生します。

Crash

これは、新しいプロジェクトを作成しますが、同じステータスを持つ複数のプロジェクトを表示することはできません。

+0

の場合を扱う

<th><%= project.try(:status).try(:value) %></th> 

プロジェクトにはステータスが必要です。デフォルトのプロジェクトを設定するか、プロジェクトの有効性を確認することができます。 – engineersmnky

答えて

0

あなたは、コードを変更するなどtryを使用することができ、すべてのProjectに関連する少なくとも1 Statusを持っているだろうことが保証されていないためです。この方法でtryno method error

+0

今は仕事ですがすべてのステータスを表示するわけではありませんが、例えば最後のプロジェクトだけを表示しています。私は3つのプロジェクトを開いていますが、最後に作成したプロジェクトの最後のステータスが表示されます) https://s32.postimg.org/ xp2jstdkl/Screenshot_from_2016_07_06_12_12_52.png 保存ファイル、テストファイル、および開いているファイルはすべて開いた状態ですが、ステータスが「オープン」で作成された最後のプロジェクトでのみステータスが表示されます。あなたのプロジェクトのモデルを追加することができますか? – johnqq

+0

? – neydroid

+0

はい。 https://s32.postimg.org/la8m4j2jp/Scr​​eenshot_from_2016_07_06_17_07_49.png – johnqq

関連する問題