小编Sri*_*Sri的帖子

`require':无法加载这样的文件 - capybara/rspec(LoadError)

我试着测试我的项目.它以前工作过,我不知道每当我输入bundle exec rspec spec/它时我做了什么cannot load such file -- capybara/rspec (LoadError).并且我需要一个建议,哪个有利于测试我的MVC在ruby轨道作为新手.

Gemfile:
------------

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
  gem 'minitest'
  gem 'capybara', '1.1.2'
  gem 'rb-inotify', '0.8.8'
  gem 'libnotify', '0.5.9'
  gem 'guard-spork', '0.3.2'
  gem 'spork', '0.9.0'
  gem 'spork-testunit'
  gem 'guard-test'
  gem 'ruby-prof'
  gem 'factory_girl_rails', '1.4.0' 
  if RUBY_PLATFORM =~ /linux/
    gem 'capybara-webkit'
  end
  gem 'launchy'
end

group :development, :test do
  gem 'rspec-rails', '2.10.0'
  gem 'guard-rspec', '0.5.5'
end
Run Code Online (Sandbox Code Playgroud)

spec_helper:

require 'rubygems'
#require …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails ruby-on-rails-3

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

如何在rails中测试rspec shoulda进行自定义验证?

我的模型中有一个私有方法,如下所示:

  validate :record_uniq

  private
  def record_uniq
    if record_already_exists?
      errors.add(:base, "already exists")
    end
  end

  def record_already_exists?
    question_id = measure.question_id
    self.class.joins(:measure).
    where(measures: {question_id: ques_id}).
    where(package_id: pack_id).
    exists?
  end
Run Code Online (Sandbox Code Playgroud)

这种方法更像是uniqueness防范重复记录的范围.我想知道如何validate :record_uniq使用shoulda或编写测试 rspec

我试过的例子:

describe Foo do
  before do
    @bar = Foo.new(enr_rds_measure_id: 1, enr_rds_package_id: 2)
  end

  subject { @bar }

  it { should validate_uniqueness_of(:record_uniq) }
end
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails shoulda rspec-rails ruby-on-rails-3

8
推荐指数
2
解决办法
6629
查看次数

$(...).tooltip 不是函数 rails 6 webpack

我曾尝试更改 bootstrap、jquery 和 popper 的版本,但没有成功。我不认为我使用了多个版本的 jquery。不知道哪里出错了。如果有人能帮我找到我遗漏的东西,那就太好了。

这是我的文件列表,

包.json:

{
  "name": "kf",
  "private": true,
  "dependencies": {
    "@fortawesome/fontawesome-free": "^5.12.1",
    "@rails/ujs": "^6.0.0",
    "@rails/webpacker": "4.2.2",
    "bootstrap": "^4.4.1",
    "jquery": "^3.4.1",
    "popper.js": "^1.16.1",
    "sweetalert2": "^9.8.2"
  },
  "version": "0.1.0",
  "devDependencies": {
    "webpack-dev-server": "^3.10.3"
  }
}
Run Code Online (Sandbox Code Playgroud)

配置/webpack/environment.js

const { environment } = require('@rails/webpacker');
const webpack = require('webpack');

environment.plugins.append(
  'Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery',
    Popper: ['popper.js', 'default']
  })
);

module.exports = environment;
Run Code Online (Sandbox Code Playgroud)

应用程序.js

require('@rails/ujs').start();
require('jquery/dist/jquery');
require('popper.js/dist/umd/popper');
require('bootstrap/dist/js/bootstrap');
require('@fortawesome/fontawesome-free');
require('./owl.carousel.min');
require('./fastclick');
require('./custom-script');
require('./return-to-top');

const Swal = require('sweetalert2');
window.Swal …
Run Code Online (Sandbox Code Playgroud)

javascript jquery webpack bootstrap-4 ruby-on-rails-6

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

将文件上传到服务器并将路径存储在Ruby on Rails中的数据库中

我对ROR很新.我有一项任务要完成:

这是模型:

class File::DataImport < ActiveRecord::Base
  attr_accessible :created_by, :file_name, :file_source, :updated_at, :updated_by
end
Run Code Online (Sandbox Code Playgroud)

这是控制器:

class Files::DataImportsController < ApplicationController
  def index
  end

  def new
  end
end
Run Code Online (Sandbox Code Playgroud)

而我的观点是indexnew.

我想要一个字段来上传数据.数据应存储在服务器中,并将文件路径保存到指定列的数据库中file_name.该路径应默认为所有上传文件.

我被困在如何开始.请帮我找到解决方案,我将从中学习.

提前致谢.

ruby ruby-on-rails

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

如何在watir中找到data-id?

我是watir测试的新手.有人会帮我找到以下元素吗?

<div class="location_picker_type_level" data-loc-type="1">
  <table></table>
</div>
Run Code Online (Sandbox Code Playgroud)

我想找到这个div,data-loc-typetable存在.

例如:

browser.elements(:xpath,"//div[@class='location_picker_type_section[data-loc-type='1']' table ]").exists?
Run Code Online (Sandbox Code Playgroud)

watir watir-webdriver

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

javascript函数无法在jquery-ajax中运行rails验证错误显示

我全局使用Jquery UI Datepicker函数在所有页面中使用日历.我创建了一个单独的javascript页面,如下所示:

var showDatePickers = function() {
  $('[data-field-type="date"]').datepicker({
    dateFormat: "yy-mm--dd",
    showOn: "both",
    buttonImageOnly: true,
    buttonImage: "/assets/blue-calendar-icon.png",
    buttonText: "Calendar"
  });
}

$(showDatePickers);
Run Code Online (Sandbox Code Playgroud)

我只是在我的视图中发布了我的datepicker字段,

<div class="field">
  <%= f.label :Renewal_Date %>
  <%= f.text_field :Renewal_Date, readonly: 'readonly', data: {field_type: date}}
</div>
Run Code Online (Sandbox Code Playgroud)

我将上述函数调用为单独的javascript文件.

$(function() {
  if ($('html.asset_contracts').length == 1) {
    $(document.body).on('ajax:success', '.new_asset_contract, .edit_asset_contract',     showDatePickers);
  }
});
Run Code Online (Sandbox Code Playgroud)

当页面加载,编辑和新操作时,它工作正常.但是当rails验证错误显示datepicker函数不起作用时.它显示空白text_field.

仅供参考:这是一个ajax页面,该new, create, update and edit操作正在以ajax页面形式运行.所以,我添加remote: true了我的形式,我有new.js, edit.js, create.js and update.js

这是我的控制器,

def create
     @contract = Asset::Contract.new(params[:asset_contract])

     respond_to do …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui ruby-on-rails ruby-on-rails-3

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

如果在轨道上的ruby中text_field为空,如何禁用提交按钮?

我是ROR的新手.我只想知道如果text_field为空,是否可以禁用提交标签按钮.

谢谢

javascript jquery ruby-on-rails

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

如何在rails上的ruby中调用存储过程?

我是ROR的新手.我想在单击VIEW中的提交按钮时调用存储过程进行处理.

    Model:
    -------

    class Pro::DataImport < ActiveRecord::Base
      attr_accessible :file_name, :process_name, :updated_by, :validates

    end

    Controller:
    -----------------

    class Pro::DataImportsController < ApplicationController
       before_filter :authenticate_user!
      layout "layouts/enr/energy_master"

      def index
       @pro_data_imports = Pro::DataImport.all 
      end

      def new
        @pro_data_import = Pro::DataImport.new
      end

    end

    View
    ----------

     <%= form_for @pro_data_import do %>

  <div class="field">
    Browse the file to upload:<br />
    <%= file_field_tag ':file_name' %>
  </div>

  <div class="actions">
    <%= submit_tag 'Import File' %>
  </div>
<% end %>


    Stored Proc
    ---------------

    ALTER PROCEDURE "DBA"."my_enr_test"(file_name long varchar)
    BEGIN
        INSERT INTO DBA.pro_data_imports(file_name) values(file_name); …
Run Code Online (Sandbox Code Playgroud)

stored-procedures ruby-on-rails sqlanywhere

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

更改 en.yml 文件中的属性名称不起作用

我更改了 ruby​​ on Rails 项目中 en.yml 文件中的属性名称。按钮工作正常。但字段属性并没有改变。

这是我的模型,

class Enr::AffordableWarmth < ActiveRecord::Base
  self.table_name = "AffordableWarmth"
  self.primary_key = 'Record_No'

  validates_presence_of :No_Bedrooms, :No_Bedspaces, :Max_Annual_Energy_Cost
  validates :No_Bedrooms, uniqueness: { scope: :No_Bedspaces, 
    message: "already exists!" }
  validates_numericality_of :No_Bedrooms, :No_Bedspaces, :Max_Annual_Energy_Cost
end
Run Code Online (Sandbox Code Playgroud)

en-GB.yml 文件

en-GB:
  helpers:
    submit:
      enr_rds_dea:
        create: 'Create new user'
        update: 'Update'

      enr_affordable_warmth:
        create: 'Create'
        update: 'Update'

  activerecord:
      models:
        AffordableWarmth:
      attributes:
        AffordableWarmth:
          No_Bedrooms: "Number of Bedrooms"
Run Code Online (Sandbox Code Playgroud)

尽管如此,在 Rails 控制台中,它还是显示“没有卧室不能为空”。一些代码在 activerecord 中不起作用。在一些代码工作正常之前。

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

如何通过rails模型将值设置为null?

如何通过rails上的ruby中的模型使列值为null?例如,我有一个checkbox被叫'include_on_epc'textbox被叫'removal_reason'.

如果选中该复选框,我想设置文本框的值应该在数据库中为NULL.

我试过以下,它没有用.

class Emm::Rrr::Result < ActiveRecord::Base

  before_save :no_removal_reason_when_including_on_epc

  private
  def no_removal_reason_when_including_on_epc
    if include_on_epc == 1
      self.removal_reason == nil
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

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

如何从watir中的多个相同属性中查找文本?

我想找到并单击Line Lo以下值中的值.以下li有100多条记录具有相同的类名.如何找到Line Lo并单击该值.

<div id="loc">
  <ul id="tab">
    <li class="criteria">
      <div class="bud">
        <div class="inner">
          <div class="attr">Code Lo</div>
        </div>
      </div>
    </li>
    <li class="criteria">
      <div class="bud">
        <div class="inner">
          <div class="attr">Line Lo</div>
        </div>
      </div>
    </li>
    <li class="criteria">
      <div class="bud">
        <div class="inner">
          <div class="attr">Add Lo</div>
        </div>
      </div>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我试过的时候 browser.ul(id: "tab").li(class: "criteria").div(text: "Line Lo")

得到了失败错误.

Unable to locate element, using(:class => "Criteria", :tag_name=>"li"
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的,不同的属性来找到文本Line Lo而我失败了.

此外,此元素类似于第45个,因此可以在单击之前向下滚动并刷新此值吗?

提前致谢

watir watir-webdriver

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