Par défaut, le routage RESTful Rails interdit l'action create
via le protocole GET
(url régulière). Pour votre exemple précis, vous devez ajouter cette route vers votre fichier config/routes.rb:
map.create_list 'list/create', :controller => 'lists', :action => 'create', :conditions => { :method => :get }
Cela ajoute un itinéraire create_list_path
ou create_list_url
accessible via GET
pour des liens, etc. L'URL utilisée pour créer une liste directement serait:
http://0.0.0.0:3000/lists/create?list[name]=Paul&list[age]=39&list[tag]=misc
Notez également que si vous obtenez des erreurs sur les jetons d'authenticité non valides, vous devrez peut-être ajouter cette ligne à votre contrôleur:
skip_before_filter :verify_authenticity_token, :only => :create
Pour les cas plus généraux, vous configurez les routes et les formes De même comme suit:
Vous devez spécifier dans votre :method => 'get'
form_tag
.
Ceci est décrit dans le guide Ruby on Rails Form Helpers (recherchez "A Generic Search Form").
Le code de base étant donné que si vous commencer est
<%= form_tag(search_path, :method => "get") do %>
<%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
<%= submit_tag("Search") %>
<% end %>
génère
<form action="/search" method="get">
<label for="q">Search for:</label>
<input id="q" name="q" type="text" />
<input name="commit" type="submit" value="Search" />
</form>
qui GET
s l'url: http://my.server/search?q={query input}&commit=Search
.
comment diable écrivez-vous à 0.0.0.0? –
hmm c'est l'adresse par défaut à laquelle on me dit de me connecter quand je lance script/server, j'ai aussi essayé localhost: 3000 mais toujours les mêmes problèmes, tout est testé localement en ce moment – Azalar