0

ヘルパー経由でチェックボックスを出力する必要がある Rails プラグインを開発しています。startup_exchange_optin('user')スキャフォールディングされた Users#index ビューにヘルパーを配置すると、チェックボックスが表示されます。それを新しいビュー、編集ビュー、表示ビューに配置すると、次のようになります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

プラグインは gem にはならないため、init.rb. 最初に使用しようとしましRailtieたが、初期化できませんでした。ActiveSupport.on_load は、少なくともインデックス ビューで機能するようです。

4

1 に答える 1

0
check_box(object_name, 'startup_exchange_optin'...

#=> undefined method `startup_exchange_optin' for #<User:0x0000010162c620>

User オブジェクトが「startup_exchange_optin」メソッドに応答しません。

于 2013-01-15T18:02:02.170 に答える