私はこれが非常識に見えることを知っていますが、私は次のようなことをしようとしています:
def site_list
@sites = []
Dir.new(base_dir = "./app/sites/").each do |name, idx|
path = "#{base_dir}#{name}"
if FileTest.directory?(path) && !name.starts_with?('.')
@sites << name
end
end
return @sites
end
私の狂気を通して私と一緒にいてください。
と呼ばれる URL パラメータがあります:site
。これが存在する場合、手動で作成したオンザフライのドロップダウン リストで正しい要素を選択する必要があります。したがって、これを機能させるには、id > name を実行する連想配列/ハッシュを作成する必要があります。
ステップバイステップ:
- id > name に関連付けられているすべてのディレクトリを一覧表示します (id は構成されており、単なるインデックスです)
- :site URL パラメータに基づいて、選択リストで正しい要素を選択します
- ステップ3はありません。
したがって、次のようになり<%= select_tag :sites, options_for_select(site_list) %>
ます。ただし、選択するオプションとして 3 番目のパラメーターを使用します。
うまくいけば、これは少なくとも何らかの意味を持ちます!
英語での説明
- ファイル システム内のフォルダーに基づいて配列を作成しています
- この配列は、
select_tag
- の
select_tag
現在選択されているアイテムは、現在のルートに基づいて決定されます。(:site
) - ルートに含まれていない場合は、「選択してください...」またはそれらの行に沿って何かを
:site
表示します。select_tag