我正在開發一個Rails插件,需要通過助手輸出複選框。將幫助器startup_exchange_optin('user')
放置在scaffolded用戶#索引視圖中時,將顯示該複選框。將其放置在新的,編輯和節目的看法,我得到NoMethodError
:插件視圖助手失敗,新的,編輯和顯示視圖
undefined method `startup_exchange_optin' for #<User:0x0000010162c620>
文件由init.rb
稱爲:
# lib/startup_exchange.rb
require 'startup_exchange/startup_exchange_helper'
module StartupExchange
end
ActiveSupport.on_load(:action_view) do
include StartupExchange::StartupExchangeHelper
end
助手:
# lib/startup_exchange/startup_exchange_helper.rb
module StartupExchange
module StartupExchangeHelper
def startup_exchange_optin(object_name, method = 'startup_exchange_optin', options = {}, checked_value = '1', unchecked_value = '0')
check_box(object_name, 'startup_exchange_optin', options, checked_value, unchecked_value)
end
end
end
該插件不會是一顆寶石,這就是爲什麼需要init.rb
。起初,我試圖使用Railtie
,但我無法得到它初始化。 ActiveSupport.on_load 似乎至少適用於索引視圖。
什麼是控制器代碼? –
控制器代碼是未觸摸的腳手架。 – sime
我把startup_exchang_option的調用放在了scaffolded Users#index動作中,我們可以看到這個調用放在動作中的代碼嗎?那不會是未受影響的腳手架。 –