小编The*_*ppe的帖子

NameError:未初始化的常量工厂

我正在按照本教程开始使用工厂女孩的轨道上的TDD,rspec,我遇到了这个问题我无法理解.

这是我的"工厂".rb(events.rb)

require 'faker'

FactoryGirl.define do
   factory :event do
     name "HIGH"
     genre "house, techno, idb"
     venue_name "Westbourne Studios"
     venue_address "4-6 Chamberlayne Road"
     venue_postcode "NW103JD"
     begin_time "10pm"
     end_time "2am"
     user_id 2
     description "A Super massive party with loads of everything you would want around."
     status true
     venue_id nil
   end
end
Run Code Online (Sandbox Code Playgroud)

这是event_spec.rb:

require 'spec_helper'
require 'factory_girl_rails'

describe Event do

it "has a valid factory" do
  Factory.create(:event).should be_valid
end

  it "is invalid without a name"
  it "is invalid without a genre" …
Run Code Online (Sandbox Code Playgroud)

ruby tdd rspec ruby-on-rails factory-bot

16
推荐指数
2
解决办法
1万
查看次数

Rails - activeadmin,在更新"父"记录时复制has_many记录

我的模型如下:

class Project < ActiveRecord::Base
  has_many :project_images
  accepts_nested_attributes_for :project_images
end

class ProjectImage < ActiveRecord::Base
  belongs_to :project
  mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)

这是activeadmin文件:

ActiveAdmin.register Project do
  remove_filter :projects_sectors
  permit_params :title, :info, :case_study, project_images_attributes: [:image, :cover]

  index do
    column :title
    actions
  end

  form :html => { :enctype => "multipart/form-data" } do |f|
    f.inputs "Project" do
    f.input :title
    f.input :info
    f.input :case_study, :as => :file
  end

  f.inputs "Images" do
    f.has_many :project_images, :allow_destroy => true, :heading => false, :new_record => true do |img_f|
      img_f.input :image, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails activeadmin

4
推荐指数
1
解决办法
1028
查看次数

修改对象的原型不起作用

我一直试图找出为什么这不起作用.如果有人可以帮助我,我将不胜感激!

function Person(name, age) {
    this.name = name;
    this.age = age;
    var ageInTenYears = age + 10; 
    this.sayNameAndAge = function() {
      console.log(name + age);
    }
}

Person.prototype.sayAge = function() {
   console.log(this.age); 
}

Person.prototype = { 
    sayName : function(){
       console.log(this.name); 
    },
    sayNameAfterTimeOut : function(time) {
       setTimeout(this.sayName, time);
    },
    sayAgeInTenYears : function() { 
       console.log(ageInTenYears);
    } 
}

var bob = new Person('bob', 30); 
bob.sayName();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

  Uncaught TypeError: Object #<Object> has no method 'sayAge' 
Run Code Online (Sandbox Code Playgroud)

javascript prototype prototype-programming

1
推荐指数
1
解决办法
73
查看次数

当我在user_spec.rb上测试验证字段的唯一性时,'新记录上缺少密码摘要'

我一直在努力奋斗几个小时,我无法在任何地方找到答案.

基本上我正在使用shoulda为我的模型编写规范,并且由于某种原因即使我的let工作正常并且实际应用程序工作正常(手动确认并使用请求规范),如果我包括:

it { expect(user).to validate_uniqueness_of :email }
Run Code Online (Sandbox Code Playgroud)

在我的describe块中,我将收到以下错误:

1) User attributes should require case sensitive unique value for email
 Failure/Error: it { expect(user).to validate_uniqueness_of :email }
 RuntimeError:
   Password digest missing on new record
 # ./spec/models/user_spec.rb:14:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

我已经到了解决这个规范的问题让我退缩,这从来都不是一件好事,因为实施已经有效.

如果有人可以帮助我在这里会很棒,因为我真的不想开始跳过那些因为某些模糊的原因而失败的测试.

我觉得好像rspec'忽略'调用has_secure_password来保存摘要的before方法,但我不确定.我只是假设,因为如果请求规范工作正常,这是做我不知道的事情.

我正在使用rails 4.0.0

以下是相关的代码.我感谢任何帮助.谢谢

user_spec.rb

require  'spec_helper'

describe User do

  let(:user) { 
    user = User.new(:email => 'example@example.com', 
                    :username => 'theo', 
                    :password => 'secretpass',
                    :password_confirmation => 'secretpass')}

  describe "attributes" do

    it { expect(user).to validate_presence_of :email } 
    it …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails shoulda ruby-on-rails-4

0
推荐指数
1
解决办法
1651
查看次数