2012-04-27 10 views
1

私は、特定のユーザーやモバイルデバイスのために異なるサブドメインを持つrails 3アプリケーションに取り組んでいます。実行時にコントローラビューのパスから特定のビューパスを削除する方法はありますか?

これは、ビューの構造がどのように見えるかです:

アプリ/

----ビュー/

--------モバイル/

--- ----- admin/

単純な呼び出しでパスセットに新しいビューパスを追加することができます。

prepend_view_path(some_path) 

または

append_view_path(some_path) 

今、私はあまりにもそれらを削除したいと思います。

以前に追加されたパスをコントローラのpath_setから削除する方法はありますか? 私はAPIで任意の有用な方法を見つけられませんでしたし、私は、配列(例えば、のようなdelete_at)に使用したい標準的な方法を使用しているとき、私は例外RuntimeErrorを以下の取得:私はすでにのために異なるMIMEタイプを使用し

can't modify frozen array 

例えば、モバイルデバイスからの要求。追加されたパスを削除できない場合は、それほど悪くはありません。私はちょうど "デフォルト"のビューパスにリセットする方法を探しています。

答えて

1

Railsには、他の2つのゲッターおよびセッターメソッド(view_paths()およびview_paths=メソッド)がそれぞれ用意されています。私は 'view_paths ='メソッドを使用すると信じて、動的に追加されたビューパスを削除することができます。

+0

ありがとうございます。明らかに、ビューパスからエントリを削除する方法は他にありません。 – rathrio

0

通常のユーザーが管理機能を使用しないようにしたいようです。より良い方法は'cancan'のような '承認'プラグインを使うことです。

関連する問題