submit_tagsではなくlink_toタグからビュー間でパラメーターを渡すRuby on Rails(両方ともページにあります)
-
06-07-2019 - |
質問
Ruby on railsプログラムのインデックスページで、データベースで最もよく検索される用語のリストを作成しているため、ユーザーが特定のカテゴリを選択するたびに、別のデータベースに書き込まれます。
ハイパーリンクを作成し、特定の量のパラメーターをフォームに渡すことは、通常select_tagで行われますが、ハイパーリンクだけでなく、隠しフィールドのセットを渡しますページとユーザーが選択したもの。
より良いアイデアを提供するために、基本的に私のプログラムには次の構造があります:
ユーザーは( index.html.erb
)で検索を入力し、ユーザーは送信タグをクリックします
アクション、ユーザーは search.html.erb
ページに移動し、洗練されたカテゴリといくつかのフィールド、送信ボタン、
ユーザーは closest.html.erb
に移動します( params [:searchSelected]
および他のいくつかのパラメーターを呼び出すことで、前のフォームのパラメーターを使用します)
この機能も追加したいと思います。
これと同じ操作を模倣しますが、 search.html.erb
に移動する代わりに、 index.html.erb
ページで既に洗練された検索カテゴリをクリックします(から link_to
、ユーザーがlink_toを選択したパラメーターとして+隠しフィールドを送信します。
i現在このコードがあります
@stats.each do
|scr|%>
<%= link_to scr.category, :action => 'closest', :id => scr.category%>
これが関連するかどうかはわかりませんが、現在、 routes.rb
ファイルに次のルートがあります
map.resources :stores, :collection => { :search => :get }
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
誰か助けてください。これはRailsプロジェクトでの最初のルビーです。これを回避する方法を見つけたいと思います
解決
これがあなたが考えていたものかどうかはわかりませんが、link_toタグに追加のパラメーターを追加できます。これらはコントローラーで使用できます。だから:
<%= link_to scr.category, :action => 'closest', :id => scr.category, :other_param => "test" %>
コントローラーで使用可能になります。
def closest
params[:other_param] == "test" #this will be true
end
他のヒント
iは params [:id]
を取得してこれを解決し、値に応じて(手動で設定したindex.erbの非表示値の代わりに)自分の値を設定します。とにかく)そして、そうでなければ、通常の検索を行った場合はいつものように続行します
表示:
<%= link_to obj.ptc_devicename ,"/wiuconfig/hd?idval=#{obj.id.to_s}&val=#{@devicetype}",:value => obj.ptc_devicename,:id =>obj.id %><br/>
コントローラー:
@Heading= params[:val]
@id=params[:id]
値はidが2で、valが@devicetypeです