2016-04-18 2 views
0

私はこれで初めてで、検索しましたが、私が探していた答えの正確な組み合わせを見つけることができませんでした。私は、データベースの列(私のコードはここまで)で動作するプルダウンメニューを作成しようとしているし、それぞれのオプションは、選択された都市のページに行くリンクになります。Rails Select Link

<%= collection_select(:city_id, 0, City.visible, :id, :name) %> 

上記の行は、私のCity db列から必要とするプルダウンを作成します。

ここにどこかにlink_toを追加できますか?私は人々がjqueryについて話しているのを見ましたが、Railsにはこれに対する答えはありませんか?リンクをcity/cityNameに移動します。

ありがとうございました!

編集 - 提供されている他のリンクには、データベースから取得したデータが正確に表示されません。

+0

[レールで多くのリンクのドロップダウンリストを作成](http://stackoverflow.com/questions/23708852/create-の可能性のある重複a-drop-down-lists-many-links-in-rails) – Vucko

+0

あなたのフォームにはsimpleformを使用していますか? – bkunzi01

+0

Regular form_for。ありがとう! – Chelsea

答えて

1

レールを使用する方法があるかもしれませんが、私はこれらの状況でhtml_safeを使用してしまいました。 html_safeを使用してコレクションの「text」値を置き換えようとしましたか?以下のような:

"<a href=#{show_path_for_object_here}>#{text_of_object_erb here}</a>".html_safe 

都市のあなたのルートは標準のようにしている場合:

resources :cities 

次に実際のコードは、おそらくにかなり近いようになります。

<%= collection_select(:city_id, 0, City.visible, :id, "<a href=cities/#{city.id}>#{city.name}</a>".html_safe) %> 
+0

ありがとうbkunxi01。私はこのようなものを試しました: '<%@ cities.each do | c | %> <%= collection_select(:CITY_ID、0、City.visible、:ID、​​ "#{c.name}" .html_safe)%> <% end %> ' しかし、私はため、URLの一部の未定義のメソッドエラーを取得しています。私は方法であるURLを取っていると思う?これはまだ私にはかなり新しいです。 – Chelsea

+0

collection_selectメソッドが既にコレクションの内容を "City.visible"から取得しているので、各都市を繰り返してcollection_selectを呼び出す必要があるとは思いません。また、エラーは何を正確に言うのでしょうか?それは、nilのメソッド 'name'を言いませんか?nilclassまたは "no method permalink for nil:nilclass"と言うか、URL全体のエラーを呼び出しますか? – bkunzi01

0

私は最終的にその方法を発見しました完璧に動作します。私は少しのJavaScriptを使い、Railsのselectタグを使わなくて済むようになった。いずれにせよ、私は私のために本当によく働いたものを投稿したかった:

<select onchange="window.location=this.value"> 
    <option>Select a City</option> 
    <% @cities.each do |c| %> 
    <option value="city/<%= c.permalink %>"><%= c.name %></option> 
    <% end %> 
</select>