2016-01-22 41 views
0

我正在學習rails 4,我想知道如何在show action中顯示來自另一個模型的屬性。Rails 4 - 正確的方法來顯示相關模型的屬性

有關信息,交易belongs_to business_line和business_line有很多交易。

以下是交易控制器的顯示操作。我想顯示鏈接business_line(而不是ID,存儲在交易表)的名稱:

<div class = 'container'> 
<h1> <%= @deal.name %> </h1> 
<p> <%= @deal.bank_id %> </p> 
<p> <%= business_line.name %> </p> 

<%= link_to 'Home', root_path %> 
<%= link_to 'Edit', edit_deal_path %> 
<%= link_to 'Delete', deal_path(@deal), method: :delete, data: {confirm: 'Are you sure?'} %> 
</div> 

這裏是我的新政控制器:

class DealsController < ApplicationController 
    before_action :find_deal, only: [:show, :edit, :update, :destroy] 
def show 
     @deal.business_line_id = @business_line.id 
    end 
private 

    def deals_params 
     params.require(:deal).permit(:name, :bank_id, :business_line_id) 
    end 

    def find_deal 
     @deal = Deal.find(params[:id]) 
    end 

end 

我該怎麼必須投入我的交易控制器才能在我的交易視圖中調用business_line.name?

非常感謝:)

回答

2

你只需要調用@deal.business_line.name因爲你已經相關的模型。

只是一個問題,你爲什麼要在節目中做這個動作? @business_line初始化在哪裏?

+0

@Etienne只要您使用您引用的has_many和belongs_to關係設置您的Deal模型和BusinessLine模型,就可以工作 – BigRon

+0

非常感謝!有效 :)。順便說一下,如果我想遵守德米特的法律,我需要做什麼? –