小编Pre*_*asz的帖子

ActionCable - 无法升级到WebSocket

我有一个连接到Web套接字的问题.有一个错误:

Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
  User Load (0.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT ?  [["LIMIT", 1]]
An unauthorized connection attempt was rejected
Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-09-11 18:57:49 +0200
Finished "/cable/" [WebSocket] for 127.0.0.1 at 2016-09-11 18:57:49 +0200
Run Code Online (Sandbox Code Playgroud)

connection.rb

module ApplicationCable
  class Connection < ActionCable::Connection::Base
    identified_by :current_user

    def connect
      self.current_user = find_verified_user
      logger.add_tags 'ActionCable', "User #{current_user.id}"
    end …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails websocket actioncable

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

向现有表添加非空列的问题

我在向表中添加不可为空的列时遇到问题.我读了很多关于这个的帖子,它应该是正确的.

迁移代码:

  def change
    add_column :individual_trainings, :start_on, :time
    add_column :individual_trainings, :end_on, :time

    change_column_null :individual_trainings, :start_on, false
    change_column_null :individual_trainings, :end_on, false
  end
Run Code Online (Sandbox Code Playgroud)

错误:

PG::NotNullViolation: ERROR:  column "start_on" contains null values...
Run Code Online (Sandbox Code Playgroud)

我不知道为什么不工作.我该如何纠正写改变方法?

提前致谢.

更新:这是我的大错.我在这张桌子上有一条记录......我清理桌子并迁移.现在它正在运作.对不起我的愚蠢和浪费你的时间.

ruby postgresql ruby-on-rails rails-migrations

5
推荐指数
2
解决办法
4024
查看次数

工厂女孩,InvalidRecord错误问题

我的错误有问题:

ActiveRecord::RecordInvalid
Run Code Online (Sandbox Code Playgroud)

造成此:

let(:ind2){ build(:ind2) }
Run Code Online (Sandbox Code Playgroud)

Rspec测试:

  describe '#client_free_time_validation' do
    let(:ind) { build(:ind).tap {|e| p e.valid?; p e.errors}}
    let(:ind2){ build(:ind2).tap {|e| p e.valid?; p e.errors} }

    context 'when training is during another training' do
      it 'raises an error' do
        expect(ind.valid?).to be_truthy
        expect(ind2.valid?).to be_falsey
        # expect(ind2.errors.count).to eq 1
        # expect(ind2.errors[:base]).to eq(['Masz w tym czasie inny trening.'])
      end
    end
Run Code Online (Sandbox Code Playgroud)

厂:

FactoryGirl.define do
  factory :individual_training do
    date_of_training { Date.today.next_week.advance(days: 1) }
    association :client, factory: :client
    association :trainer, factory: :trainer
    start_on Time.parse('12:30')
    end_on Time.parse('13:30') …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails factory-bot

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

如何命名路由链接?

我在向路由链接添加名称时遇到问题.下面是路由屏幕: 在此输入图像描述

我想命名最后一个链接:

GET    /backend/people/:id/vacations/new(.:format)
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

resources :vacations, only: [:new, :create] do
  collection do
    get 'new', as: 'people_vacation'
  end
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,这段代码重复了新的操作. 在此输入图像描述

如何避免这种重复并且只有一个链接(带名称)到新操作?

ruby ruby-on-rails

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

将日期翻译为星期几

我有一种方法可以将一周的命名天数翻译成我的母语:

def translate_date(daytime)
  case daytime
  when daytime.strftime('%A') == 'Monday'
    'Poniedzia?ek'
  when daytime.strftime('%A') == 'Tuesday'
    'Wtorek'
  when daytime.strftime('%A') == 'Wednesday'
     '?roda'
  when daytime.strftime('%A') == 'Thursday'
     'Czwartek'
  when daytime.strftime('%A') == 'Friday'
     'Pi?tek'
  when daytime.strftime('%A') == 'Saturday'
     'Sobota'
  when daytime.strftime('%A') == 'Sunday'
     'Niedziela'
  end
end
Run Code Online (Sandbox Code Playgroud)

我用它作为例如:

date = Sat, 21 May 2016 00:00:00 UTC +00:00
translate_date(date) # => nil
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在哪里?为什么会回来nil

同时,我得到:

date.strftime('%A') == 'Saturday' # => true`
Run Code Online (Sandbox Code Playgroud)

ruby switch-statement

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