如果只更改注册视图,是否需要自定义Devise控制器?

rob*_*kos 7 integration-testing rspec ruby-on-rails devise capybara

我在capybara/rspec集成测试中有以下步骤,即只是尝试注册一个新成员.

 visit new_member_registration_path
 fill_in('Name:',                     :with => 'Rob Doe' )
 fill_in('member_email',              :with => 'rob@smith.com' )
 fill_in('member_email_confirmation', :with => 'rob@smith.com' )
 fill_in('member_password',           :with => 'secret')
 fill_in('Company or Venue Name:',    :with => 'Rob Inc.')
 fill_in('Contact Number:',           :with => '040544404440')
 click_button('Sign up')
 save_and_open_page
Run Code Online (Sandbox Code Playgroud)

由于某种原因,'email'和'password'数据没有传递给DeviseRegistrations控制器(查看测试日志时它是空白的),因此导致验证失败.然而,直到save_and_open_page没有RSpec的错误(因此这些领域正在填写).

我错过了什么?我是否需要继承DeviseRegistrations控制器?

在Rails 3.0.7上测试,机架测试0.5.7和rails 3.1rc1和机架测试0.6.0

rob*_*kos 2

问题出在应用程序布局文件中。我有另一个(尽管是隐藏的)表单,用于发布空白表单字段。

在我创建了一个空白项目并看到它运行完美后,我剥离了应用程序的所有潜在部分,直到找到罪魁祸首。

所以问题的答案是,不,当您使用自定义设备视图时不需要自定义设备控制器。