ror rails examples ruby-on-rails ruby routing

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:

  1. "Preguntas" del controlador creado
  2. Modelo creado ''pregunta''
  3. Acción de controlador creado ''nuevo''
  4. 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 :).