我有一个连接到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) 我在向表中添加不可为空的列时遇到问题.我读了很多关于这个的帖子,它应该是正确的.
迁移代码:
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)
我不知道为什么不工作.我该如何纠正写改变方法?
提前致谢.
更新:这是我的大错.我在这张桌子上有一条记录......我清理桌子并迁移.现在它正在运作.对不起我的愚蠢和浪费你的时间.
我的错误有问题:
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) 我想命名最后一个链接:
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)
如何避免这种重复并且只有一个链接(带名称)到新操作?
我有一种方法可以将一周的命名天数翻译成我的母语:
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)