1

問題

これは簡単な質問です。私は、spree フォーラム、plataforma tec フォーラム、および SO を見回しましたが、成功しませんでした。

1 つはメイン アプリケーション用、もう 1 つは特定の URL にマウントしたスプリー エンジン ストア用です。

より詳細な説明

現在、酒宴エンジンを使用したアプリケーションを開発しています。これは、spree エンジンが特定の URL にマウントされ、たとえば mysite.com/store にアクセスすることでアクティブ化されることを意味します。

さて、メイン アプリでは、シュプレー ストアのものとは異なる一連のアセットを使用しています。オリジナルの simple_form.rb 初期化子は、これらのアセット専用に作成されました。

ここが興味深いところです。

spree エンジン内では、simple_form を使用した新しいフォームも開発しています。これは正常に動作しますが、メイン アプリの css タグとマークアップを使用するメイン アプリの simple_form.rb ファイルを使用しています。

物事を正しく表示するには、実際に spree テンプレートの css を使用するように simple_form.rb ファイルを変更する必要があります。

可能な解決策?

理想的には、酒宴エンジン用の simple_form.rb ファイルとメイン アプリ用の simple_form.rb ファイルを用意する必要がありますが、これを行う簡単な方法がわかりません...

私のもう1つのアイデアは、simple_form.rbファイルに何らかの条件を付けて、メインアプリにいるときに1つのオプションセットをロードし、スプリーストアにいるときに別のオプションセットをロードすることでした...おそらくURLをチェックしますか?

4

1 に答える 1

3

わかりました。simple_form に個別の構成を設定する方法は明らかです。

すべてが単一の simple_form.rb 初期化子に入ります。変更されるのは config.wrapper だけです。

SimpleForm.setup do |config|
  # Wrappers are used by the form builder to generate a
  # complete input. You can remove any component from the
  # wrapper, change the order or even add your own to the
  # stack. The options given below are used to wrap the
  # whole input.
  config.wrappers :default, :class => :input do |b|
    # config goes here
  end

  config.wrappers :special, :class => input do |b|
    # special config goes here
  end

  config.default_wrapper = :default
end

次に、コードで、:specialラッパーを使用する場合は、入力を次のように記述します

f.input :name, :wrapper => :special

ここで詳細を確認できます

カスタム ラッパー

于 2013-02-08T21:35:19.257 に答える