小编Kev*_*vin的帖子

为什么我的user_id为零?

def destroy
  @dignity.destroy
end
Run Code Online (Sandbox Code Playgroud)

对不起,那不是代码,这就是我现在的感受.我知道关于Devise有很多初学者的问题,我想我几乎每个人都看过.

我在Rails 3中有一个非常简单的Devise设置.我做了:

rails生成设备用户

我也在运行rails 3 GeoKit插件,(不确定这是否相关,只知道我有这个其他型号)所以我有另一个名为Location的模型,它的acts_as_mappable.

在我发布代码之前,基本问题是我似乎无法使user_id自动增加.根据我的理解,如果我向Location类添加一个名为user_id的列,那么一些Rails魔法应该为我解决这个问题.(我通过迁移完成的.)然后简单地设置has_many和belongs_to.(见下文)

我无法弄清楚为什么user_id总是为零.它与Devise引擎的工作方式有关吗?我很确定在过去使用Devise时,我已经以同样的方式使这种类型的关联工作.

user.rb:

class User < ActiveRecord::Base

  has_many :locations

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable and :timeoutable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end
Run Code Online (Sandbox Code Playgroud)

location.rb:

class Location < ActiveRecord::Base
  belongs_to :user


  attr_accessible :street_adress, :city, :state, :zip, :item, :user_id
  acts_as_mappable :auto_geocode => true

  def address
    return "#{self.street_adress}, #{self.city}, #{self.state}, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-many belongs-to devise ruby-on-rails-3

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

如何从cakephp 3中的实体对象获取表模式/列?

假设我有一个绑定\Cake\ORM\Entity对象 - $kablammo 我可以通过执行以下操作确认并确保它具有关联的存储库:

use Cake\ORM\Entity;

// ..snip

if ($kablammo instanceOf Entity && !empty($kablammo->source())) {
    $repository = $kablammo->source();
    // ... what do I do here to get the table schema info/columns?
}
Run Code Online (Sandbox Code Playgroud)

我希望能够基本上查看此Entity关联表的表列.最好的方法是什么?我已经错了吗?

php cakephp-3.0

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

"虽然读LINE做"和grep问题

我有两个文件.

file1.txt:  
Afghans  
Africans  
Alaskans  
...  
Run Code Online (Sandbox Code Playgroud)

其中file2.txt包含网页上wget的输出,所以这是一个很大的混乱,但确实包含了第一个列表中的许多单词.

Bashscript:

cat file1.txt | while read LINE; do grep $LINE file2.txt; done
Run Code Online (Sandbox Code Playgroud)

这没有按预期工作.我想知道为什么,所以我在循环中回显了$ LINE变量并添加了一个睡眠1,所以我可以看到发生了什么:

cat file1.txt | while read LINE; do echo $LINE; sleep 1; grep $LINE file2.txt; done
Run Code Online (Sandbox Code Playgroud)

终端中的输出看起来像这样:

Afghans
非洲人
阿拉斯加人
阿尔巴尼亚人
美国人
grep:中文:没有这样的文件或目录
:没有这样的文件或目录
阿拉伯人
阿拉伯人
阿拉伯人/东印度人
:没有这样的文件或目录
阿根廷
亚美尼亚人
亚洲
亚洲印第安人
:没有这样的文件或目录
file2.txt:亚洲火影忍者
. ..

所以你可以看到它终于找到了"亚洲"这个词.但为什么会说:

没有相应的文件和目录

有什么奇怪的事情或我在这里错过了什么吗?

bash grep while-loop cat

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

vim中的文件管理器选项卡

我非常接近搞清楚这一点,但似乎找不到丢失的部分.

我有一个非常好的vim开发设置.在进行MVC项目时,我需要打开多个选项卡,并且我已经非常善于在它们之间进行切换并快速重新排列.

我甚至可以打开一个垂直选项卡,其中包含我的文件的交互式目录列表.

我真正想要的,也无法弄清楚:

  1. 为了能够使这个垂直选项卡持久化,即在所有选项卡的"前景"中,并允许我将文件打开到新选项卡中.(基本上,我希望vim有一个文件管理器的侧窗,当我按下目录中的选定文件时,它将打开一个新选项卡,但"文件管理器/目录选项卡"将保持打开状态,并且面前.

  2. 将持久性"文件管理器/目录选项卡"设置为特定宽度 - 即:vsplit 32(像素?)

那有意义吗?有人能指出我的帮助部分的正确部分吗?

谢谢,凯文

vi vim

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

如何将柱变量的内容添加到带盐的文件中?

在salt状态文件中,如何将柱的内容添加到远程salt-minion上的文件中?

例如,如果我有支柱数据,如:

ssl:
    some-domain.com:
        key:
            -----BEGIN RSA PRIVATE KEY-----
            MIICX... snip ...
Run Code Online (Sandbox Code Playgroud)

在远程salt-minion上,我希望有一个类似的文件,/etc/nginx/ssl/som-domain.com.key其中包含该私钥的内容,我该怎么做?我也愿意接受这样一个答案:"你做错了,假的." 只要你给我一些见解并指出我正确的方向,它将会有很大的帮助.

我知道盐的file.managed,和file.*来自某些测试的朋友,但我不确定是否有一种最佳/首选的方法可以将任意支柱数据添加到远程文件中,就像我正在尝试的那样.

我还在学习/用盐攻击,所以我还在使用Yaml + Jinja进行模板化,如果你在制定一个合适的答案时很重要.

谢谢!

编辑: 顺便说一下,目前的hacky解决方案是:

在我的file_root/srv/salt /中创建一个文件,就像/srv/salt/ssl/some-domain.com.key包含类似的文件一样{{ salt[pillar.get]('ssl:some-domain.com:key') }}

但这看起来真是太烂了.在这里寻找更好的解决方案.

python salt-stack

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

如何在"$*"中排除bash输入参数

基本上,我希望能够调用$*在bash脚本,表示所有参数的脚本调用后,但我希望它忽略了第2位.(1美元和2美元)

所以为了简单起见,如果所有脚本都只是回显参数,它应该表现如下:

$ myscript.sh first_argument second_argument foo bar baz blah blah etc
foo bar baz blah blah etc
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?顺便说一句,第一个和第二个参数后的文本数量应该没有限制,如果知道了这个数量,我可以轻松地单独调用它们,比如$ 3 $ 4 $ 5 $ 6 ...

我希望这很清楚.

谢谢,

凯文

variables bash arguments

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

试图理解strace输出

我试图了解strace.

所以我认为一个非常实际的方法是做以下事情:

strace ``echo "1"'' > echo1.txt

strace ``echo "2"'' > echo2.txt
Run Code Online (Sandbox Code Playgroud)

然后:

diff echo1.txt echo2.txt
Run Code Online (Sandbox Code Playgroud)

从那里开始.我的想法是,如果我能看出输出的差异,我可以推断出很多strace告诉我的东西.

不幸的是,echo1.txt和echo2.txt只包含echo的输出,而不是strace.我可以手动复制/粘贴输出,然后运行差异,但现在我只是好奇我做错了什么.

有人可以帮忙吗?

unix redirect strace

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

如何使bash脚本在新行上终止

这是出于学习目的.我写了一个模拟打字的脚本.

用法是:

$ typewriter (insert some text here)
Run Code Online (Sandbox Code Playgroud)

然后脚本将以随机的方式回显它,看起来像是在打字.很好,但问题是,如果输入包含分号(;)它会中断.

例如:

$ typewriter hello; world
Run Code Online (Sandbox Code Playgroud)

我想这是一个简单的修复.我只是想不出来.

提前致谢!

码:

#!/bin/bash
#Displays input as if someone were typing it

RANGE=4
the_input=$*
if [ x$* = "x" ] || [ x$* = "xusage" ] || [ x$* = "xhelp" ] || [ x$* = "x--help" ];
then
        echo "Usage: typewriter <some text that you want to look like it's typed>"
        exit 1

fi
  while [ -n "$the_input" ]
  do
    number=$RANDOM
    let "number %= RANGE" …
Run Code Online (Sandbox Code Playgroud)

bash input sh

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

我如何在bash中从另一个的输出创建一个变量

这是一个不符合我期望的示例脚本:

#!/bin/bash
for dynamic in a b c; do
  myvar=$dynamic

  export $myvar="hi"

  echo $(eval "$myvar")
  echo $dynamic
done
Run Code Online (Sandbox Code Playgroud)

我希望输出是:

hi

a

hi

b

hi

c
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我愿意偏离这种方法,但我绝对希望能够创建一个从算法输出中命名的变量.在这种情况下,它只是一个for循环.

variables bash eval dynamic

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