2011-02-28 95 views
0
def admin_options_for_registrar(registrar) 
    if registrar.enrollment_application != nil && registrar.enrollment_application.status == "Complete" 
    ["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ] 
    else 
    ["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ] 
    end 
end 

這個輔助方法我在模型文件中寫道 現在我調用這個方法在視圖文件這樣關於輔助方法?

<% if xyx!= nil? %> 
<td><%= select_tag "options", options_for_select([admin_option_for_registrar]) 
<% end %> 

,這應該給我的下拉與編輯,顯示和儀表板,但它給了我錯誤未定義mentod'admin_options_for_registrar'

任何幫助?

回答

1

輔助方法應該放在'app/helpers'的助手文件中,而不是在模型文件中。

正如所寫,聽起來您已經爲您的模型創建了一個實例方法,而您正試圖在沒有實例的情況下調用該方法。

更新

還有很多其他的問題,本身的功能:

  • 看來你在你的函數有一個語法錯誤,有多餘]的您如果
  • 的兩個分支
  • 你的兩個分支是否相同;爲什麼有一個如果根本?
  • 你的函數沒有返回任何東西;你需要的return關鍵字
  • 你的函數需要一個參數(registrar),但你無法通過調用它withing []

嘗試通過一個在

  • 你包圍函數的結果在addtional陣列得到以下的工作,然後添加分支邏輯回:

    def admin_options_for_registrar(registrar) 
        [ 
         ["Show", "/registrars/"+registrar.id.to_s], 
         ["Edit", "/edit_registrars/"+registrar.id.to_s], 
         ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s] 
        ] 
    end 
    
    
    # pass the registrar object into your function 
    <%= select_tag "options", options_for_select(admin_option_for_registrar(registrar)) 
    
  • +0

    我搬進來幫手文件,但現在不是顯示下拉它只是表明我「option_for_registrar」在下降而不是向下像編輯選項,表演和儀表板 – user588324 2011-02-28 16:11:29