2011-12-15 21 views

回答

1

如果你聲明的控制方法與是helper_method一個助手,那麼助手將只在屬於控制器的看法是可用的。

如果您想讓幫助程序在所有視圖中都可用,則必須在應用程序控制器中定義控制器方法並聲明幫助程序。

如果你有興趣,這是相關的Rails代碼:

def helper_method(*meths) 
    meths.flatten! 
    self._helper_methods += meths 

    meths.each do |meth| 
    _helpers.class_eval <<-ruby_eval, __FILE__, __LINE__ + 1 
     def #{meth}(*args, &blk) 
     controller.send(%(#{meth}), *args, &blk) 
     end 
    ruby_eval 
    end 
end 

你可以看到,調用的時候,助手只是調用控制器上的相同名稱的方法。

相關問題