记录下近期遇到的问题及解决方法。
Nuxt 中引入 select2
安装select2:
yarn add select2
yarn add select2-bootstrap-theme
引入 css:
在assets/stylesheets/中添加select2.scss
:
@import 'select2/dist/css/select2.css';
@import 'select2-bootstrap-theme/dist/select2-bootstrap.css';
在nuxt.config.js
文件中,css部分添加:
css: [
......
'~assets/stylesheets/select2.scss',
.....
]
新增组件Select2.vue
:
<template>
<select id="select2" :name="name" multiple="multiple">
<option v-for="item in items" :key="item.id" :value="getValue(item)">{{ getLabel(item) }}</option>
</select>
</template>
<script>
import $ from 'jquery'
import select2 from 'select2'
export default {
props: {
items: { required: true },
name: { required: true },
valueMethod: { default: 'id' },
labelMethod: { default: 'name' }
},
mounted() {
$(this.$el).select2({
theme: "bootstrap"
})
},
methods: {
getValue(obj) {
return _.result(obj, this.valueMethod)
},
getLabel(obj) {
return _.result(obj, this.labelMethod)
}
}
}
</script>
rails 迁移 array 类型数据
问题描述:
数据库PG,添加 array 类型, 迁移数据:
class Poem < ActiveRecord::Base; end
def change
change_table :poems do |t|
t.string :content, array: true, default: []
end
Poem.update_all(content: [ "test" ])
end
rake db:migrate
时 ,一直报错:can’t quote Array.
解决方法:
使用类方法: reset_column_information
修改上面的migration代码:
class Poem < ActiveRecord::Base; end
def change
change_table :poems do |t|
t.string :content, array: true, default: []
end
Poem.reset_column_information
Poem.update_all(content: [ "test" ])
end
ok.
SSH AuthenticationFailed
问题描述:
远端ssh 正常登录服务器,但是部署的时候,执行报错:
cap staging deploy:check
Caused by:
Net::SSH::AuthenticationFailed: Authentication failed for user [email protected]
终端:
ssh [email protected]
正常登录。
解决方法:
Google一圈,参考Net::SSH::AuthenticationFailed: Authentication failed for user 。
服务器执行:
ssh-add -l
显示:
The agent has no identities.
执行:
ssh-add -k ~/.ssh/authorized_keys
显示:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/deploy/.ssh/authorized_keys' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
执行:
sudo chmod 600 ~/.ssh/authorized_keys
ssh-add -k ~/.ssh/authorized_keys
报错:
Error loading key "/home/deploy/.ssh/authorized_keys": invalid format
玩伤。
最后奇葩的解决方法竟然是:
本地 vi ~/.ssh/config
, 添加 host:
Host space
HostName 118.190.xxx.xxx
User deploy
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
再次执行:
cap staging deploy:check
OK了「但不知道为什么就突然好了,应该是修改文件权限的功劳……」
Vim register
Vim 中的 register 用来存储信息。
Vim uses it registering commands you enter, files you open, text you input, etc. What vim does is to save all this data on a
.viminfo
file.
register 有几种,在 command mode 下使用 :help registers
可以查看。
说其中两种。
unnamed register
匿名寄存器,d,c,s,x 被删除的字符会存在匿名寄存器,所以 insert mode下使用
<Ctrl+r> + "
会粘贴上一步删除的字符。26 named registers
命名的register,register的名字是
a-z
或者A-Z
中的任意一个。比如normal mode 下,复制光标所在位置一行的内容,放到register d 中:
"dyy
下次粘贴时, normal mode下:
"dp
如果想要在register d 中追加内容,可以使用D。
"Dyy
会将该行追加到register d 中,下次粘贴时,会是追加了新内容的register d。
参考
Net::SSH::AuthenticationFailed: Authentication failed for user