2015-05-27 42 views
0

試圖學習rails,構建非常簡單的應用程序。Rails如何在訂單視圖中獲取客戶名稱?

前往

<%= link_to 'Show Orders', orders_path %>) 

我拿到訂單的名單一個客戶。有一些屬性存儲給客戶,包括名字和第二名。

我嘗試 「約翰清單訂單」 創建文本標題:

<h1>Listing Orders for <%= @customer.try(:name) %></h1> 

結果是:

Listing Orders for 

我該怎麼辦錯了嗎?

UPD:

好,客戶和訂單實際上是「暱稱」的功能和資產(的關係是一樣的),更容易理解。抱歉讓人困惑。

因此,資產控制器顯示方法:

class AssetsController < ApplicationController 
before_action :set_asset, only: [:show, :edit, :update, :destroy] 

def show 
end 

private 
def set_asset 
    @asset = Asset.find(params[:id]) 
end 

特徵模型:

class Feature < ActiveRecord::Base 
    has_many :assets, dependent: :destroy 
end 

資產模型:

class Asset < ActiveRecord::Base 
    belongs_to :feature 
end 
+0

檢查控制檯,如果您試圖顯示'name'的'@ customer'在他的'name'列中沒有'nil'。 – ZuzannaSt

+4

請將您的控制器顯示操作和順序以及用戶模型 –

+0

添加顯示操作和順序以及用戶模型。 所有列都不爲空。我可以將名稱更改爲id - id不能爲null。仍然沒有工作 –

回答

0

好吧,最後管理它。有點不同的方法 - 我現在顯示功能頁面上的資產。

class FeaturesController < ApplicationControll 

def show 
@assets = Asset.where(feature_id: @feature.id) 
end 

而且在功能/ show.html.erb

<h2>Assets</h2> 
<%= render @feature.assets %> 

好像總魔術給我,但還是作品就像需要。

現已關閉。

0

try返回nil提高例外。所以而不是customer.name是零。我是肯定它不會成爲所有customers.remove嘗試和代碼將引發異常,因爲名稱是零

+0

那麼,只有兩個客戶。並且所有的字段都被填充了。似乎我對Active Record存在錯誤。 –

+0

@AlexeyDerevyanko親切地在控制器中進行調試,以獲得一個想法..讓我知道你看到了什麼。 :) – Milind

相關問題