Soy un poco novato de Rails. Estoy escribiendo una aplicación de baranda móvil, así que no estoy usando activerecord para este modelo. Me acabo de dar cuenta de que eso significa queRails form_tag escritura del formulario - con el modelo de registro inactivo
form_for(@model)
no funcionará. Estoy tratando de encontrar la forma de usar form_tag, pero la mayoría de los ejemplos no involucran nuevas acciones de creación de &.
Esto está mal:
<h1>New article</h1>
<% form_tag new_article_url(@article), :method => :post do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', articles_path %>
Porque cuando corro mi escenario pepino, me sale esto:
Scenario: Create Valid Article # features/article.feature:16
Given I have no articles # features/step_definitions /article_steps.rb:8
And I am on the list of articles # features/step_definitions/webrat_steps.rb:6
/home/deploy/www/www.trackingplace.com/app/ccc/app/views/articles/new.html.erb:3: warning: multiple values for a block parameter (0 for 1)
from /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.3.3/lib/action_view/helpers/capture_helper.rb:36
When I follow "New Article" # features/step_definitions/webrat_steps.rb:18
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.error_messages (ActionView::TemplateError)
features/article.feature:19:in `When I follow "New Article"'
Pero no entiendo el error, o cómo solucionarlo.
Gracias Ryan. Si decido agregar soporte para form_for a mis modelos, ¿alguna sugerencia sobre cómo confirmar el conjunto completo de métodos necesarios? –
No conozco ninguna forma en Rails 2 para determinar el conjunto "completo" de métodos necesarios. Si haces algunas pruebas y no obtienes errores de method_missing, probablemente sea bueno. Rails 3 presentará una forma documentada de hacerlo y ofrecerá una interfaz establecida para que usted la defina en el modelo. – ryanb
Ok, ahora soy demasiado cojo para descubrir cómo acceder a los valores del formulario. En mi controlador tengo: def create @article = Article.new (: title => params [: artículo]) Pero eso no funciona. Obtengo lo siguiente cuando trato de usarlo internamente para inicializar la clase: Y presiono "Crear" # features/step_definitions/webrat_steps.rb: 14 método indefinido 'downcase 'para {" title "=>" Spuds " }: HashWithIndifferentAccess (NoMethodError) ¿Alguna pista? –