# No action responded to create. Actions: index

**URL:** <https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848>\
**Category:** IT\
**Created:** [August 25, 2010, 2:48pm UTC](https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848 "2010-08-25T14:48:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 25, 2010, 2:48pm UTC](https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848/1 "2010-08-25T14:48:50Z")

</div>

Salve a tutti,  
sto cercando di fare un piccolo gestionale in rails  
il mio problema e’ questo  
nella view index di user  
ho questo codice

## Lista Utenti

 \<% form\_tag :action=\>'index' , :method =\>'post' do%\> \<%= text\_field\_tag :search %\> \<%= submit\_tag "cerca" , :user =\>nil %\> \<% end %\> 
 \<% for user in @users %\> \<% end %\> 

| \<%= user.id %\> | \<%= user.user %\> |

nel model ho creato class User \< ActiveRecord::Base def self.search(search) if search find(:all , :conditions =\>["user like ?", "&#{search}"] ) else find(:all) end end end nel controller ho definito l'index def index @users=User.search(params[:search]) end

se apro la pagina regolarmente [http://localohost/user](http://localohost/user) m’indirizza  
giustamente nella pagina e tutto funziona ma non appena faccio la provaa  
lanciare una ricerca mi dice :

Unknown action  
No action responded to create. Actions: index  
mi chiedo come mai visto che l’action index esiste ?  
potreste aiutarmi

Grazie  
fdibenedetto

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 25, 2010, 2:54pm UTC](https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848/2 "2010-08-25T14:54:40Z")

</div>

Il 25 agosto 2010 14:48, Fabio Di benedetto  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> giustamente nella pagina e tutto funziona ma non appena faccio la provaa  
> lanciare una ricerca mi dice :
> 
> Unknown action  
> No action responded to create. Actions: index  
> mi chiedo come mai visto che l’action index esiste ?

Ciao,

quando hai a che fare con controller REST, la differenza tra index e  
create non sta nell’url (che è / per entrambi), ma sul method: GET per  
index, POST per create.

pietro

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 25, 2010, 3:04pm UTC](https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848/3 "2010-08-25T15:04:02Z")

</div>

innanzi tutto è errato mettere html in

la form è sbagliata perchè alla URL /users/ col metodo POST è già  
associata la action ‘create’. controlla da terminale con il comando rake  
routes per vedere le rotte già impostate.

infine, il metodo ‘search’ nel modello è un po’ fuori luogo, è meglio  
definire quella logica nella action del controller controller, se poi  
devi usarlo in più action dello stesso controller, allora crea un metodo  
apposito. se devi usarlo in più controllers, allora potresti metterlo in  
application\_controller.rb, perchè verrà ereditato.

ciao,  
A.

Il 25/08/2010 14:48, Fabio Di benedetto ha scritto:

---

<div class="post-metadata">

**Author:** ![fdibenedetto72](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/8491ac/32.png) [@fdibenedetto72](https://www.ruby-forum.com/u/fdibenedetto72)\
**Post date:** [August 25, 2010, 6:31pm UTC](https://www.ruby-forum.com/t/no-action-responded-to-create-actions-index/193848/4 "2010-08-25T18:31:49Z")

</div>

ciao Andrea ma anche se metto il :method=\> ‘get’  
il risultato nn cambia anche se cambio il nome della action !

 \<% form\_tag :action=\>'index' , :method =\>"GET" do%\> \<%= text\_field\_tag :search %\> \<%= submit\_tag "cerca" , :user =\>nil %\> \<% end %\> 

ti posto il risultato del rake  
dal risultato del rake capisco che se aggiungo :method=\> “get” a dovrei  
andare in index  
DEPRECATION WARNING: Rake tasks in vendor/plugins/ext\_scaffold/tasks are  
depreca  
ted. Use lib/tasks instead. (called from \<top (required)\> at  
C:/Ruby191/lib/ruby  
/gems/1.9.1/gems/rails-2.3.8/lib/tasks/rails.rb:10)  
users GET /users(.:format)  
{:controller=\>“users”, :  
action=\>“index”}  
POST /users(.:format)  
{:controller=\>“users”, :  
action=\>“create”}  
new\_user GET /users/new(.:format)  
{:controller=\>“users”, :  
action=\>“new”}  
edit\_user GET /users/:id/edit(.:format)  
{:controller=\>“users”, :  
action=\>“edit”}  
user GET /users/:id(.:format)  
{:controller=\>“users”, :  
action=\>“show”}  
PUT /users/:id(.:format)  
{:controller=\>“users”, :  
action=\>“update”}  
DELETE /users/:id(.:format)  
{:controller=\>“users”, :  
action=\>“destroy”}

Andrea P. wrote:

> innanzi tutto ï¿½ errato mettere html in
> 
> la form ï¿½ sbagliata perchï¿½ alla URL /users/ col metodo POST ï¿½ giï¿½  
> associata la action ‘create’. controlla da terminale con il comando rake  
> routes per vedere le rotte giï¿½ impostate.
> 
> infine, il metodo ‘search’ nel modello ï¿½ un po’ fuori luogo, ï¿½ meglio  
> definire quella logica nella action del controller controller, se poi  
> devi usarlo in piï¿½ action dello stesso controller, allora crea un metodo  
> apposito. se devi usarlo in piï¿½ controllers, allora potresti metterlo in  
> application\_controller.rb, perchï¿½ verrï¿½ ereditato.
> 
> ciao,  
> A.
> 
> Il 25/08/2010 14:48, Fabio Di benedetto ha scritto:
