Rails:rake任务,参数不起作用

时间:2014-07-03 15:03:57

标签: ruby-on-rails rake zsh rake-task

这是我的佣金任务

namespace :users do
  task :change_role, [:role] => :environment do |t, args|
    puts args.role
  end
end

我这样称呼它:

rake users:change_role["role"]但我收到此错误no matches found: users:change_role["role"]

4 个答案:

答案 0 :(得分:15)

在zsh中使用它们时需要转义方括号:

rake users:change_role\["role"\]

答案 1 :(得分:1)

将rake任务放在单引号中。

rake 'users:change_role["role"]'

有关https://thoughtbot.com/blog/how-to-use-arguments-in-a-rake-task的更多信息

答案 2 :(得分:0)

@infused方式有效,但如果你想让更改成为永久性的,那么你可以简单地调用rake users:change_roles["hello"],将以下内容添加到你的.zshrc中:

alias rake='noglob rake'

答案 3 :(得分:0)

您可以按照here中Chad Pytel的描述,将unsetopt nomatch添加到您的.zshrc文件中。