我使用的是Rails 3.2,RailsAdmin 0.0.3,Rspec和Capybara。
我尝试从我的spec文件中调用RailsAdmin url帮助程序,如RailsAdmin wiki中所述。 rails_admin.new_path(:model_name => :user)
当我从控制器或视图中使用帮助程序时它工作得很好但是当试图从spec文件中使用它时会出现这个错误:
未定义的局部变量或方法`rails_admin'用于#RSpec :: Core :: ExampleGroup :: Nested_2:0xbe04948>
我想我必须在spec_helper.rb文件中添加一些内容才能加载rails_admin。但谷歌搜索了一段时间后,并期待着rails_admin gem的spec_helper,我无法弄清楚是什么......
任何帮助都会被贬低!
答案 0 :(得分:7)
我在rails_admin的spec_helper.rb中找到了它。
将以下代码包含在spec_helper.rb中。
RSpec.configure do |config|
...
config.include RailsAdmin::Engine.routes.url_helpers
end
我使用调试器测试过。它可以被称为
> new_path(:model_name => :user)
=> "/admin/user/new"
答案 1 :(得分:0)
我将此行添加到需要rails_admin网址的个别规范中,并允许我引用之前帖子中提到的方法,但不会干扰我的非管理员网址。
include RailsAdmin::Engine.routes.url_helpers
规范中的方法示例
index_path(:model_name => :client)
我正在使用Rails 5.0,Rspec 3.5和Capybara 2.10.1