我正在使用带有rails 3.0.9,cucumber-rails 1.0.2,capybara 1.0.0的设计1.4.2.我有No route matches "/users/sign_out"错误,当我点击注销.:method => :delete经过这样的问题(no-route-matches-users-sign-out-devise-rails-3)后,我添加了link_to标签.
由于我用jquery替换了原型,我也不得不改变
config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
Run Code Online (Sandbox Code Playgroud)
至
config.action_view.javascript_expansions[:defaults] = %w(jquery jquery_ujs)
Run Code Online (Sandbox Code Playgroud)
绕过rails.js找不到错误.
虽然有了上述更改,但我能够成功注销并重定向到root,当我在FireBug中查看localhost:3000/users/sign_out请求的响应时,它会显示相同的路由错误消息单击此处以查看带有注释的屏幕截图
通过设计成功实现对rails 3 app的身份验证后,当我按照本教程(github.com/RailsApps/rails3-devise-rspec-cucumber/wiki/Tutorial)使用Cucumber + Capybara + RSpec添加功能和规格时,出现以下错误
When I sign in as "user@test.com/please" # features/step_definitions/user_steps.rb:41
Then I should be signed in # features/step_definitions/user_steps.rb:49
And I sign out # features/step_definitions/user_steps.rb:53
No route matches "/users/sign_out" (ActionController::RoutingError)
<internal:prelude>:10:in `synchronize'
./features/step_definitions/user_steps.rb:55:in `/^I sign out$/'
features/users/sign_out.feature:10:in `And I sign out'
And I should see "Signed …Run Code Online (Sandbox Code Playgroud) 我需要在解析数据之前验证CSV文件中的标头.
# convert the data into an array of hashes
CSV::Converters[:blank_to_nil] = lambda do |field|
field && field.empty? ? nil : field
end
csv = CSV.new(file, :headers => true, :header_converters => :symbol, :converters => [:all, :blank_to_nil])
csv_data = csv.to_a.map {|row| row.to_hash }
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用headers方法来获取标题
headers = csv.headers
Run Code Online (Sandbox Code Playgroud)
但是header方法的问题是"如果不使用标题则返回nil,如果它们尚未被读取则返回true,或者在读取之后返回实际标题".
所以,如果我把headers = csv.headers上面的csv_data = csv.to_a.map {|row| row.to_hash }线headers是true,如果我把它读取数据后,headers包含在阵列中头排.它对我的方法施加了一个指令顺序,这个指令非常难以测试并且编程很糟糕.
有没有办法在这种情况下读取标题行而不强加顺序?我正在使用ruby 2.0.
我正在使用Devise 3.1.1开发Rails 4应用程序进行用户身份验证.当我单击/users/sign_up.user链接时,Rails会抛出以下异常:
ActionController::UnknownFormat in Devise::RegistrationsController#new
ActionController::UnknownFormat
Rails.root: /home/rehan/odesk_work/kiefer-waight/ujoin/ujoin-www
Application Trace | Framework Trace | Full Trace
actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:372:in `retrieve_collector_from_mimes'
actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:327:in `respond_with'
devise (3.1.1) app/controllers/devise/registrations_controller.rb:8:in `new'
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.0) lib/active_support/callbacks.rb:413:in `_run__890637270__process_action__callbacks'
....
Run Code Online (Sandbox Code Playgroud)
我在启动应用程序时实际上是在Devise 3.0.0.rc上,我认为将设备升级到3.1.1可能会解决问题,但事实并非如此.在SO/google/devise github项目中找不到任何有用的东西.任何想法如何解决它.谢谢!