環境: Rails 3.2.3
この質問を編集して、ヘルパー モジュールのソース コードと提案をここに含めます。
これは、Rails アプリケーションでドロップダウン メニューを作成する最初の試みです。トピックに関するヘルプを探してみましたが、複雑なことは、ドロップダウン メニューという用語が実際のドロップダウン メニュー (ページ メニュー) に使用されていることと、ドロップダウン リスト、フォーム オプション、フォーム選択などとは何かということです。探している情報を見つけるのが難しくなります。
https://github.com/dkeskar/rails-jquery-dropdown (投稿の最後にあるソース コード)へのポインターを見つけ、指示に従って jquery_dropdown_helper.rb: をダウンロードし、/lib に配置しました。
私のGemfileには、次のものがあります。
gem 'jquery-rails'
_header.html.erb には、次のものがあります。
<% require 'jquery_dropdown_helper' %>
....
<%= hidden_field_tag :sort_criteria %>
<%= dropdown_tags :sort_criteria, 'Select Criteria',
%w(Category Status Amount-High Amount-Low) %>
しかし、これは機能していません。これが私が得ているエラーコードです:
undefined method `gsub' for :sort_criteria:Symbol
トレースを調べたところ、jquery_dropdown_helper.rb の次の行が問題のようです。
id = options[:id] || "#{field.gsub(/[[]\s]/, '-')}-selector"
何か案は?
ドロップダウン メニューの問題の解決策
Rails アプリケーションでドロップダウン メニューを使用する方法を探していましたが、この質問に対する回答が得られませんでした。数日間の調査の後、Twitter gem 'twitter-bootstrap-rails' を使用して解決策を見つけました。
以下を Gemfile に追加します。
gem 'twitter-bootstrap-rails'
以下を app/assets/javascripts/application.js に追加します
この正確な順序であることを確認してください。
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap
次に、ドロップダウン メニューが必要な場所に、次を追加します。
<ul class="nav nav-pills">
<li class="dropdown" id="admin_menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#admin_menu">
ADMIN
</a>
<ul class="dropdown-menu">
<% Admin_menu.each do |menu_text,menu_action| %>
<li><a href=" <%= menu_action %>"><%= menu_text %></a></li>
<% end %>
</ul>
</li>
</ul>
次のハッシュがあることに注意してください。
Admin_menu = Hash.new
Admin_menu["Events"] = "events#index"
Admin_menu["Categories"] = "categories#index"
Admin_menu["Panels"] = "panels#index"
イベント、カテゴリ、およびパネルの足場があると仮定すると、すべて機能するはずです。