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

den*_*icz 6 rake zsh ruby-on-rails rake-task

这是我的佣金任务

namespace :users do
  task :change_role, [:role] => :environment do |t, args|
    puts args.role
  end
end
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

rake users:change_role["role"] 但是我收到了这个错误 no matches found: users:change_role["role"]

inf*_*sed 18

在像zsh这样的shell中使用时,你需要转义方括号:

rake users:change_role\["role"\]
Run Code Online (Sandbox Code Playgroud)

  • 很棒的电话!完整的错误确实是:“zsh:找不到匹配项:” (2认同)

小智 14

将 rake 任务放在单引号中。

rake 'users:change_role["role"]'
Run Code Online (Sandbox Code Playgroud)

更多关于https://thoughtbot.com/blog/how-to-use-arguments-in-a-rake-task

  • 这是 zsh 的先决条件。 (3认同)

Nad*_*dav 5

您可以添加unsetopt nomatch到您的 .zshrc 文件中,正如 Chad Pytel 在此处所述