ruby on rails - rails - método indefinido en rieles
routes rails examples (2)
Soy nuevo en ruby y comencé a crear mi aplicación de juguete * nd. YO:
- "Preguntas" del controlador creado
- Modelo creado ''pregunta''
- Acción de controlador creado ''nuevo''
- Se agregó el archivo ''New.html.erb''
en el archivo erb utilizo form_for
helper y una new
acción de controlador donde instanciamos la variable de instancia @question
. Cuando intento ejecutar esto obtengo ''undefined method: questions_path for #<ActionView::Base:0x5be5e24>''
error ''undefined method: questions_path for #<ActionView::Base:0x5be5e24>''
. Debajo está mi new.html.erb:
<%form_for @question do |f| %>
<%=f.text_field :title %>
<%end%>
Indique cómo solucionar esto y también ayúdeme con aliasing esta acción del controlador. Lo que quiero decir es que me gustaría escribir http: // mysite / questions / ask , en lugar de / questions / create
En config/routes.rb
necesitarás agregar:
map.resources :questions
para arreglar el problema del método undefined questions_path.
Una forma de obtener /questions/ask
es modificar routes.rb
como routes.rb
:
map.ask_question ''/questions/ask'', :controller => ''questions'', :action => ''create''
que le dará ask_question_path
que puede hacer referencia en su código.
Parece que hiciste todos estos pasos individualmente. Deberías probar el generador de andamios, que construirá todo esto para ti.
Ejemplo:
>ruby script/generate scaffold question question:string answer:string votes:integer
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/questions
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists public/stylesheets/
create app/views/questions/index.html.erb
create app/views/questions/show.html.erb
create app/views/questions/new.html.erb
create app/views/questions/edit.html.erb
create app/views/layouts/questions.html.erb
create public/stylesheets/scaffold.css
create app/controllers/questions_controller.rb
create test/functional/questions_controller_test.rb
create app/helpers/questions_helper.rb
route map.resources :questions
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/question.rb
create test/unit/question_test.rb
create test/fixtures/questions.yml
create db/migrate
create db/migrate/20081201150131_create_questions.rb
Como puede ver, con un andamio obtenemos nuestro modelo, nuestro controlador, nuestras vistas, nuestra ruta, una migración de la base de datos que generará una tabla de Preguntas con dos campos, y acciones del controlador RESTful para agregar / actualizar / ver / eliminar cualquier datos de pregunta. Ah, y lo más importante, un conjunto vacío de archivos de prueba listos para que se escriban tus pruebas :).