1

Je cette forme:lien se soumettre à une autre page

en-tête de mon site:

<% form_tag request.path, :method => 'get' do %> 
<p> 
    <%= text_field_tag :query, params[:query] %> 
    <%= submit_tag "Search User", :name => nil %> 
</p> 
    <% end %> 
contrôleur

:

def index 
    @title = "All users" 
    @users = User.paginate(:page => params[:page]) 
    @users1 = User.simple_search(params[:query]).all 
    end  

modèle:

acts_as_simply_searchable :columns => [:name, :email] 

vue

<%= will_paginate %> 
<ul class="users"> 
    <%= render @users1 %> 
</ul> 

<%= will_paginate %> 

affiche un utilisateur

Je veux créer un lien sur le bouton Envoyer à index.html.erb (j'ai attribué un chemin dans routes.rb). Pour que l'utilisateur puisse regarder les résultats de la recherche

Répondre

2

Vous ne le faites pas avec le bouton "submit", mais avec l'URL form_tag (le premier paramètre). Ce serait quelque chose comme ceci:

<% form_tag users_path, :method => 'get' do %> 
    <p> 
    <%= text_field_tag :query, params[:query] %> 
    <%= submit_tag "Search User", :name => nil %> 
    </p> 
<% end %> 
1

Il suffit de changer request.path pour le chemin désiré.

0

Je pense que vous manquez le signe « = » et chaîne interpoler le « request.path » Ce marché pour moi:

<%= form_tag "#{request.path}", method: "get" %> 
    ...the rest of your code ... 
<% end %> 
Questions connexes