0

尊敬する人...

私はレールに本当に慣れていないので、あなたの貴重な助けが必要です...

データベースに「graph_hospital_vacant_by_band」というデータベースビューがあります

mysql> desc graph_hospital_vacant_by_band;
+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| specialisation_id | int(11)      | NO   |     | NULL    |       |
| specialisation    | varchar(255) | YES  |     | NULL    |       |
| nos               | bigint(21)   | NO   |     | 0       |       |
| hospitalband      | varchar(255) | NO   |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

そのモデルは:

class GraphHospitalVacantByBand < ActiveRecord::Base
 self.table_name = 'graph_hospital_vacant_by_band'
end

コントローラーは次のとおりです。

class GraphHospitalVacantByBandsController < InheritedResources::Base
end

ビューは次のとおりです。

<table class="table table-bordered">
  <thead>
    <tr>
        <th>Specialisation</th>
              <th>No.</th>
        <th>Hospital Band</th>
    </tr>
  </thead>
<tbody>
<% @graph_hospital_vacant_by_bands.each do |graph_hospital_vacant_by_band| %>
  <tr>
             <td><%= graph_hospital_vacant_by_band.specialisation %></td>
             <td><%= graph_hospital_vacant_by_band.nos %></td>
             <td><%= graph_hospital_vacant_by_band.hospitalband %></td>
  </tr>
<% end %>
</tbody>
</table>

現在これを示しているのはどれですか

http://i.stack.imgur.com/v7Jwt.png

特定の専門分野を選択すると、その専門分野の nos,hospitalband が表示されるように、利用可能な専門分野の上にドロップダウンが必要です...

色々調べて色々試しましたがだめでした…。

渡されたパラメーターを処理するためにモデルとコントローラーを更新する方法がわかりません....

どうもありがとう...

よろしくお願いします-Sky

4

1 に答える 1

1

スコープと where 句の組み合わせを使用してフィルターを提供できますが、このタイプの機能を提供する gem を探すのが最も簡単かもしれません。

2 つの一般的なオプションはSqueelRansackです。Squeel は、ActiveRecord の組み込みメソッドを使用してレコードを検索する方法を強化します。Ransack は、表示しているレコードをフィルタリングするために使用できる別の「検索フォーム」を使用します。

これらの gem のいずれかを使用する場合は、コントローラーを更新し、検索/フィルター ロジックとビューを追加して検索/フィルター オプションを追加します。

コントローラーに追加します

def index
  @q = GraphHospitalVacantByBand.search(params[:q])
  @graph_hospital_vacant_by_bands = @q.result(:distinct => true)
end

ビューに検索フォームを追加する必要があります。

<%= search_form_for @q do |f| %>
  <%= f.label :specialisation_cont %>
  <%= f.text_field :specialisation_cont %>
  <%= f.label :nos_eq %>
  <%= f.text_field :nos_eq %>
  <%= f.label :hospitalband_cont %>
  <%= f.text_field :hospitalband_cont %>
  <%= f.submit %>
<% end %>

これは非常に基本的な検索フォームで、値を受け入れる空のテキスト フィールドを提供します。さらに洗練させるには、選択を使用して許容可能な値を提供することをお勧めしますが、これで少なくとも開始できます。

于 2013-03-14T20:52:36.510 に答える