Note that there are some explanatory texts on larger screens.

plurals
  1. PORspec don't recognise any method of RSpec::Matcher and RSpec::Core
    primarykey
    data
    text
    <p>I have spent 4 days trying to install Ruby on Rails properly but I have a big problem. The first time I used Linux (it's more confortable for me) but, after having a problem, I used windows. To my surprise, I have the same issue on Windows, so I suppose that I have forbidden something. If I try to load a page with a small form for a model, it shows me an error that says:</p> <pre><code>Unable to autoload constant ReservationsController, expected ...../app/controllers/reservations_controller.rb to define it </code></pre> <p>Also, if I try to execute a test for a model with rspec, I receive a lot of errors of the following type:</p> <pre><code>$ rspec spec/models/reservation_spec.rb FFFFF Failures: 1) Reservation Fields Failure/Error: it{ should have_fields( :from_date ).of_type( Date ) } NoMethodError: undefined method `of_type' for #&lt;RSpec::Matchers::BuiltIn::Has:0x915ebc8&gt; # ./spec/models/reservation_spec.rb:7:in `block (3 levels) in &lt;top (required)&gt;' 2) Reservation Fields Failure/Error: it{ should have_fields( :price ).of_type( Float ) } NoMethodError: undefined method `of_type' for #&lt;RSpec::Matchers::BuiltIn::Has:0x9423cc8&gt; # ./spec/models/reservation_spec.rb:10:in `block (3 levels) in &lt;top (required)&gt;' 3) Reservation Fields Failure/Error: it{ should have_fields( :room ).of_type( String ) } NoMethodError: undefined method `of_type' for #&lt;RSpec::Matchers::BuiltIn::Has:0x94d5bbc&gt; # ./spec/models/reservation_spec.rb:11:in `block (3 levels) in &lt;top (required)&gt;' 4) Reservation Fields Failure/Error: it{ should have_fields( :until_date ).of_type( Date ) } NoMethodError: undefined method `of_type' for #&lt;RSpec::Matchers::BuiltIn::Has:0x952cb60&gt; # ./spec/models/reservation_spec.rb:8:in `block (3 levels) in &lt;top (required)&gt;' 5) Reservation Fields Failure/Error: it{ should have_fields( :number_of_persons ).of_type( Integer ) } NoMethodError: undefined method `of_type' for #&lt;RSpec::Matchers::BuiltIn::Has:0x957bbc0&gt; # ./spec/models/reservation_spec.rb:9:in `block (3 levels) in &lt;top (required)&gt;' Finished in 0.16437 seconds 5 examples, 5 failures Failed examples: rspec ./spec/models/reservation_spec.rb:7 # Reservation Fields rspec ./spec/models/reservation_spec.rb:10 # Reservation Fields rspec ./spec/models/reservation_spec.rb:11 # Reservation Fields rspec ./spec/models/reservation_spec.rb:8 # Reservation Fields rspec ./spec/models/reservation_spec.rb:9 # Reservation Fields Randomized with seed 18738 </code></pre> <p>The steps that I have followed to install rails are the following:</p> <ul> <li>Install Ruby 2.0.0.</li> <li>Install Git.</li> <li>Install Rails (following this page <a href="http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-ruby-on-rails-3/" rel="nofollow">http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-ruby-on-rails-3/</a>).</li> <li>Install MongoDB (following this page <a href="http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/" rel="nofollow">http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/</a>).</li> <li>Install mongoid (add to Gemfile and use bundle install).</li> <li>Install rspec (add to Gemfile and use bundle install).</li> <li>Execute: rails generate rspec:install</li> </ul> <p>The main files that I have used are the following:</p> <p><strong>Gemfile</strong></p> <pre><code>source 'https://rubygems.org' require 'mongo' source 'http://gemcutter.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.0.0' gem 'mongo_mapper' gem "rspec-rails", :group =&gt; [:development, :test] group :test do gem 'database_cleaner' end gem 'json', '~&gt; 1.8.0' # Gem to support json gem 'haml', '~&gt; 4.0.3' # Gem to support haml views gem 'mongo', '~&gt; 1.9.1' # Gem to use mongodb gem 'mongoid', git: 'https://github.com/mongoid/mongoid.git' gem 'rake', '~&gt; 10.1.0' # Gem to use rake (rspec and cucumber) gem 'cucumber', '~&gt; 1.3.5' # Gem to test with cucumber gem 'capybara', '~&gt; 2.1.0' # Gem to use capybara in cucumber tests gem 'wait_for', '~&gt; 0.1.1' # Gem to wait for an apparition in cucumber tests gem 'factory_girl', '~&gt; 4.2.0' # Gem to create examples data group :assets do gem 'sass-rails', '~&gt; 4.0.0' gem 'coffee-rails', '~&gt; 4.0.0' gem 'uglifier', '~&gt; 2.1.2' end </code></pre> <p><strong>mongoid.yml</strong></p> <pre><code>development: sessions: default: database: hotel_development hosts: - localhost:27017 options: options: test: sessions: default: database: hotel_test hosts: - localhost:27017 options: consistency: :strong max_retries: 1 retry_interval: 0 </code></pre> <p><strong>mongo.rb</strong></p> <pre><code>MongoMapper.connection = Mongo::Connection.new('localhost', 27017) MongoMapper.database = "#myapp-#{Rails.env}" if defined?(PhusionPassenger) PhusionPassenger.on_event(:starting_worker_process) do |forked| MongoMapper.connection.connect if forked end end </code></pre> <p><strong>reservation.rb</strong></p> <pre><code>class Reservation include Mongoid::Document field :from_date, type: Date field :until_date, type: Date field :number_of_persons, type: Integer field :price, type: Float field :room, type: String has_one :client end </code></pre> <p><strong>reservations_controller.rb</strong></p> <pre><code>class ReservationsControlller &lt; ApplicationController def show @user = User.find( params[:id] ) end def new @user = User.new end def create @user = User.new( params[:user] ) if @user.save redirect_to @user else render 'new' end end end </code></pre> <p><strong>routes.rb</strong></p> <pre><code>Hotel::Application.routes.draw do resources :reservations, only: [:show, :new, :create] end </code></pre> <p><strong>reservation_spec.rb</strong></p> <pre><code>require 'spec_helper' describe Reservation do subject{ @reservation } describe "Fields" do it{ should have_field( :from_date ).of_type( Date ) } it{ should have_field( :until_date ).of_type( Date ) } it{ should have_field( :number_of_persons ).of_type( Integer ) } it{ should have_field( :price ).of_type( Float ) } it{ should have_field( :room ).of_type( String ) } end end </code></pre> <p>If you need another file I can put without problems.</p> <p>Thanks in advance.</p> <p>EDIT: Added rspec tests for reservation model. EDIT2: I have included the output of the rspec test.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload