小编fbe*_*ger的帖子

Rails 3到4迁移唯一性验证问题

上下文

我们正在从Rails 3.2.12迁移到4.0.2,从Ruby 1.9.3迁移到2.1.8.

我们有很多测试覆盖率来完成RSpec形式的迁移.

问题

检查卡模型上的唯一性验证失败的规范之一.

validates :mobile, uniqueness: {scope: :program_member_id, message: I18n.t('models.card.error.cardholder_already_has_mobile')}, if: :mobile
Run Code Online (Sandbox Code Playgroud)

哪一个program_member可能只有一张mobile: true卡.

该规范为该成员创建了2张牌,将一张牌变为移动牌,然后在使用第二张牌时预期验证的消息.

let(:program) { FactoryGirl.create(:program) }
let(:card) { FactoryGirl.create(:card, program: program) }

context 'when cardholder already has a mobile card' do
  it 'fails validation' do
    card2 = FactoryGirl.create(:card, program: program)
    program_member_user = FactoryGirl.create(:program_member_user, card_number: card2.cardnumber)
    program_member = program_member_user.program_members.first

    program_member.cards << card2
    card2.update_attributes(:mobile => true)

    program_member.cards << card
    card.update_attributes(:mobile => true)

    expect(card.errors.messages).to include(:mobile=>[I18n.t('models.card.error.cardholder_already_has_mobile')])
  end
end
Run Code Online (Sandbox Code Playgroud)

期望:

expected {} to include …
Run Code Online (Sandbox Code Playgroud)

ruby validation rspec ruby-on-rails

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

操作电缆不工作我必须刷新两个选项卡才能看到消息

这是room.coffee的代码:

App.room = App.cable.subscriptions.create "RoomChannel",
  connected: -> 
  disconnected: -> 

  received: (data) ->
    $('#messages').append "<p>#{data}</p>"    

  speak: (message) ->
    @perform 'speak' , message: message
Run Code Online (Sandbox Code Playgroud)

cable.coffee:

@App ||= {}
App.cable = ActionCable.createConsumer()
Run Code Online (Sandbox Code Playgroud)

rooms.coffee:

$ ->
    $messages = $('messages')
    $messages.scrollTop $messages.prop('scrollHieght')
    $('#message_input').focus()

$(document).on 'keypress','message_input','e'->
    if e.keycode == 13 and e.target.value
    App.room.speak(e.target.value)
    e.target.value = ''
    e.preventDefault()
Run Code Online (Sandbox Code Playgroud)

roomchannel:

class RoomChannel < ApplicationCable::Channel
  def subscribed
     stream_from "room_channel"
  end

  def unsubscribed
    # Any cleanup needed when channel is unsubscribed
  end

  def speak(data)
    message.create content: data['message']
  end
end
Run Code Online (Sandbox Code Playgroud)

Broadcostmessage: …

ruby ruby-on-rails ruby-on-rails-5

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

冒泡手动排序Java中的链接列表

这是我的第一个问题.我试图在java中手动排序整数的链接列表,我无法弄清楚我的代码有什么问题.有什么建议?我没有得到任何错误,但我的输出仍然无序.我尝试了几种不同的方式,但没有任何效果.如果有人能帮助我,我感激不尽.

public class Node {

    int data; 
    Node nextNode;

    public Node(int data) {
        this.data = data;
        this.nextNode = null;       
    }

    public int getData() {
        return this.data;
    }
} // Node class


public class DataLinkedList implements DataInterface {  
    private  Node head;
    private int size; 

    public DataLinkedList(){
        this.head = null;
        this.size = 0;
    }

    public void add(int data) {
        Node node = new Node(data);
        if (head == null) {
            head = node;
        } else {
            Node currentNode = head;
            while(currentNode.nextNode != null) …
Run Code Online (Sandbox Code Playgroud)

java linked-list bubble-sort

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

RSpec 测试 Time 对象

我的时间相关规格不合格。

我知道时间是从纪元开始计算的,但如果对象表示足够接近,我希望这个规范能够通过。

例如:

expect( @model.end_date ).to eq end_date

expected: Wed, 08 Feb 2017 20:13:30 UTC +00:00
     got: Wed, 08 Feb 2017 20:13:30 UTC +00:00
Run Code Online (Sandbox Code Playgroud)

有人对测试时间有什么建议,这样轻微的偏移就不会导致测试失败吗?

ruby-on-rails rspec-rails

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