задача rake с несколькими параметрами - я застрял

Сама рейк-задача:

desc "This task creates a new user"
task :create_user, [:email, :password] => :environment do |t, args|
  trole = Role.find_by_name('translator')
  User.create(
      :email => args.email,
      :password => args.password,
      :password_confirmation => args.password,
      :role_id => trole.id)
end

Звонок:

rake create_user[[email protected],password]

Выход:

rake aborted!
Don't know how to build task 'create_user'

Я действительно застрял. Все советы, которые я нашел, даже здесь, на StackOverflow, либо не охватывают ситуацию с двумя параметрами, либо устарели/не работают. Пожалуйста помоги!


person Paul    schedule 05.02.2013    source источник
comment
Это сообщение об ошибке предполагает, что он не может найти саму задачу. Вы видите это, если делаете rake -T?   -  person Shadwell    schedule 05.02.2013
comment
Это говорит о том, что он не загружается, а не об ошибке в самой задаче.   -  person Shadwell    schedule 05.02.2013
comment
Это бренд-болезнь Ruby: он никогда не выдает точных сообщений об ошибках, чтобы помочь понять, что произошло. Будет ли он в данном конкретном случае говорить что-то вроде rake couldn't find task with name 'create_user', я бы давно это исправил.   -  person Paul    schedule 05.02.2013


Ответы (1)


Синтаксис, который вы написали, должен нормально работать в bash, поэтому я предполагаю, что вы используете zsh?

Если это так, он не может правильно проанализировать [] и их необходимо экранировать.

Попробуйте использовать:

rake create_user\[[email protected],password\]

вместо.

person James Wilberforce-Andrews    schedule 11.04.2013
comment
Если проблема связана с zsh, вы также можете использовать rake 'create_user[[email protected],password]' или noglob rake create_user[[email protected],password]. Если вы используете oh-my-zsh Робби Рассела, активируйте плагин rake для автоматического добавления noglob для ты. - person James Wilberforce-Andrews; 11.04.2013