Как я могу исправить это предупреждение, которое появляется при запуске Test :: Unit tests - PullRequest
2 голосов
/ 19 февраля 2009

Я получаю это предупреждение в выводе Test :: Unit ...

/usr/local/bin/ruby -I.:lib:test -rtest/unit -e "%w[test/functional/sessions_controller_test.rb].each { |f| require f }" | unit_diff -u
Loaded suite -e
Started
.../Users/ethan/project/mtc/contactdb/app/views/sessions/new.html.haml:30: warning: multiple values for a block parameter (0 for 1)
    from /usr/local/lib/ruby/gems/1.8/gems/haml-2.0.8/lib/haml/helpers/action_view_mods.rb:142
[...repeated eight times...]

Я думаю, что соответствующая часть:

/contactdb/app/views/sessions/new.html.haml:30: warning: 
  multiple values for a block parameter (0 for 1)

Глядя на файл Хамла, я сократил его до этого фрагмента (я думаю) ...

- form_tag( recover_login_path, :method => 'get') do |f|
  %p
    = text_field_tag :email, '', { :size => '35', :maxlength => '255' }

recover_login является именованным маршрутом.

Я посмотрел документацию по API для form_tag. Похоже, мой код соответствует тому, что есть в примерах.

Ответы [ 2 ]

6 голосов
/ 19 февраля 2009

form_tag передается в объект построителя форм |f| только при использовании с ним объекта модели.

form_tag @user, :method => :get do |f|
  f.text_field :first_name
end

Но при создании собственного пути к форме без передачи в объекте модели аргумент блока не передается и не используется.

form_tag user_path(@user.id), :method => :get do
  text_field :user, :first_name
end
5 голосов
/ 19 февраля 2009

Блок form_tag не принимает параметров. Так что уберите |f| и предупреждение должно исчезнуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...