Como novato de Ruby on Rails, entiendo que las referencias "@" y ":" tienen diferentes significados. Vi this post en SO, que describió algunas de las diferencias.Ruby - Diferencia entre: variable y @variable
- @ indica una variable de instancia (por ejemplo, @my_selection)
- : indica un alias (por ejemplo,: my_selection)
me encontré con una situación en la que tenía una norma Página de MVC, similar a todas las otras formas/páginas en mi aplicación web.
html.erb snippet
<%= form_for @my_selection do |f| %>
route.rb snippet
resources :my_selections
Cuando intento acceder a esta página, me sale este error:
NoMethodError in selections#create
Showing C:/somedir/myapp/app/views/my_selections/index.html.erb where line #16 raised:
undefined method `my_selection_index_path' for #<#<Class:0x1197e5676>:0x25439c3b>
La línea 16 es el fragmento de formulario n arriba.
Todos mis otros formularios/páginas en la misma aplicación web están configurados exactamente de la misma manera y funcionan bien. Sin embargo, una vez que cambié la referencia de formulario erb a : my_selection, este error desapareció y mi página se comportó normalmente.
Preguntas:
- es mi comprensión de la diferencia entre: my_selections y @my_selections correcto?
- ¿Por qué cambiar a: my_selection resolver el error original?
Tendré que verificar qué está haciendo mi modelo, pero definitivamente agradezco la explicación. – JW8