2016-09-22 114 views
0

不幸的是,我們的Ruby開發者是外地來的,我們有一個需要一種變通方法修復,直到他可以返回的問題。我一直負責找到它。Ruby on Rails的 - 未定義的方法 - Rails的3.2.13

我試圖進入我們的數據庫視圖,hr_accounts_view,包含我們需要整合到我們現有的頁面,它依賴於一個完全不同的表所需的數據之一。所有我們試圖拉入的是我們認爲的狀態列,所以我盡我所能保持模型/控制器/視圖儘可能簡單。

我hr_account_view型號:

class HrAccountView < ActiveRecord::Base 

    self.table_name = 'hr_accounts_view' 

    include Savable 

    # belongs to :hr_account 
    belongs to :employee, foreign_key: :id 


    validates :Status, presence: true 



    end 

Hr_Account_Views控制器:

class HrAccountViewsController < ApplicationController 

load_and_authorize_resource 

def show 
    @HrAccountView.Status = HrAccountView.Status 
end 

private 

end 

我也分開的觀點出來到它自己的文件夾視圖中,企圖使其與關聯新的控制器。我們在我們的常規演示頁面中呈現此頁面。

頁從我們的節目,hraccountsview/_apptment.html.erb被稱爲:

<table> 
    <tr> 
    <td> 
    Status<br /> 
     <%= display_text_field @HrAccountView.Status %> 
    </td> 
    </tr> 
</table> 

我已經經歷了讀一噸的帖子引用這個問題,它看起來像這個問題將是一個控制器中的聲明缺失,但我嘗試了各種組合。不幸的是,我真正在Ruby和Rails中做的最多的是頁面的小改動和一些搜索功能,但從來沒有任何東西需要添加額外的表格/視圖。

根據錯誤信息,我有一個未定義的方法「狀態」爲nill:NillClass,它正在發生,就會向所呈現我的網頁的第5行。如果我投入救援無,頁面將至少顯示標題,但不顯示數據。正在預覽的記錄目前具有「狀態」列的已填充記錄。這導致我相信模型而不是控制器存在問題,但在這一點上,我一直在旋轉我的車輪,試圖找出丟失連接的位置。

是否有人在那裏我失去了連接的想法?

你的幫助是非常感謝!

Rails的3.2.13版本 數據庫版本:SQL 2012

+0

這裏有一些案例交換。 \ @hraccountview和\ @HrAccountView應該是同一件事情嗎? –

+0

這是新的代碼?還是你想修復現有的代碼? – zetetic

+0

他們應該是同一件事。在我發佈之前我甚至沒有注意到。 – Live2Learn

回答

0

有幾個約定,可以幫助:

屬性(列的示範文本)以小寫字母表示。所以:

validates :status, presence: true 

相同的實例變量。例如。:

def show 
    @status = HrAccountView.Status 
end 

我懷疑HrAccountView.Status也可能是錯誤的,但可能不是。我們需要看看控制器中還有什麼。通常,使用請求中的參數值在模型上執行find操作。

變量名在所述控制器和所述視圖必須匹配:

<%= display_text_field @status %> 

在Ruby大寫字符串(例如Status)是一個常數,小寫字符串是一個變量或一個方法的參考。如果以「@」作爲前綴,則它是對實例變量的引用。

+0

這沒有把戲。通過交換案件,它能夠撤回必要的信息,不再拋出錯誤。我覺得我已經嘗試了一百次,但是我必須讓這些情況在某個地方不同步。 – Live2Learn

0

def show @HrAccountView.Status = HrAccountView.Status end

除非我失去了一些東西,@HrAccountView沒有在任何地方定義,所以它是一個零對象,這意味着你不能訪問物業Status就可以了。你應該首先聲明一些東西,比如@HrAccountView = HrAccountView.find(params[:id])。這將從您的視圖(如果找到)加載單個記錄到您的變量中。

相關問題