Tôi là một phần của người mới sử dụng Rails. Tôi đang viết một ứng dụng đường ray-couch, vì vậy tôi không sử dụng activerecord cho mẫu này. Tôi đã chỉ ra rằng điều đó có nghĩa làSoạn thảo biểu mẫu form_tag Rails - với mẫu bản ghi không hoạt động
form_for(@model)
sẽ không hoạt động. Tôi đang cố gắng tìm cách sử dụng form_tag - nhưng hầu hết các ví dụ không liên quan đến việc tạo các hành động mới &.
này là sai:
<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 %>
Bởi vì khi tôi chạy kịch bản dưa chuột của tôi, tôi có được điều này:
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"'
Nhưng tôi không hiểu sai, hoặc làm thế nào để sửa chữa nó.
Cảm ơn Ryan. Nếu tôi quyết định thêm hỗ trợ cho form_for vào mô hình của tôi - mọi đề xuất về cách xác nhận toàn bộ các phương thức cần thiết? –
Tôi không biết cách nào trong Rails 2 để xác định tập hợp "đầy đủ" các phương thức cần thiết. Nếu bạn làm một số xét nghiệm và không nhận được lỗi method_missing nó có lẽ là tốt. Rails 3 sẽ giới thiệu một cách được làm tài liệu để làm điều này và cung cấp một giao diện được thiết lập để bạn có thể xác định trong mô hình. – ryanb
Ok - bây giờ tôi quá lame để tìm ra cách truy cập các giá trị biểu mẫu! Trong bộ điều khiển của tôi, tôi có: def create @article = Article.new (: title => params [: article]) Nhưng điều đó không hiệu quả. Tôi nhận được những điều sau đây khi tôi cố gắng sử dụng nó trong nội bộ để khởi tạo lớp: Và tôi nhấn "Tạo" # features/step_definitions/webrat_steps.rb: 14 phương thức undefined 'downcase 'cho {" title "=>" Spuds " }: HashWithIndifferentAccess (NoMethodError) Bất kỳ đầu mối nào? –