Ruby on rails 未定义的方法';邮政';对于Rspec
我正在学习教科书《工程软件即服务》中关于Cucumber和Rspec for RoR的教程,同时在edX.org上学习存档课程。我在与Rspec合作时遇到了问题。索引视图有一个发布到控制器方法的表单,其中唯一的字段名为:search\u terms。在movies_controller.rb中有以下方法:Ruby on rails 未定义的方法';邮政';对于Rspec,ruby-on-rails,rspec,saas,Ruby On Rails,Rspec,Saas,我正在学习教科书《工程软件即服务》中关于Cucumber和Rspec for RoR的教程,同时在edX.org上学习存档课程。我在与Rspec合作时遇到了问题。索引视图有一个发布到控制器方法的表单,其中唯一的字段名为:search\u terms。在movies_controller.rb中有以下方法: class MoviesController < ApplicationController ... def search_tmdb @movies = Movie.fi
class MoviesController < ApplicationController
...
def search_tmdb
@movies = Movie.find_in_tmdb(params[:search_terms])
flash[:notice] = "Movie '#{params[:search_terms]}' not found."
redirect_to movies_path
end
end
Rspec给了我以下错误:
NoMethodError:
undefined method `post' for <RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xb36c92c>
结束对于最新版本的RSpec Rails,有两个文件可用于运行规范
spec\u helper.rb
和rails\u helper.rb
您可能需要使用require'rails\u helper'
使post
方法可用
希望这有帮助你的spec helper中有什么?你能在spec/spec\u helper.rb文件中发布代码吗?我在我的spec\u helper文件中添加了“require'rails\u helper'”,并运行了bundle exec rspec,结果出现了加载错误。错误是/gems/activesupport-3.2.18/lib/active\u-support/dependencies.rb:251:in'require':无法加载这样的文件--rails\u-helper(LoadError)。虽然本课程在五月底结束,我在课程虚拟机上运行,但它使用的是rails 3.2。我想知道是否有一些问题源于此。找到了问题。令人尴尬的是,当我创建spec/controllers文件夹时,我将movies\u controller\u spec文件保存在spec文件夹中。将其移动到控制器文件夹解决了该问题。很抱歉给您添麻烦,谢谢您的帮助。
NoMethodError:
undefined method `post' for <RSpec::Core::ExampleGroup::Nested_1::Nested_1:0xb36c92c>
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
RSpec.configure do |config|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"