2014-11-27 6 views
0

В настоящее время я работаю вместе с учебником Hartl Ruby on Rails (глава 2) с использованием среды IDE Cloud9. Я столкнулся с ошибкой с Arel::Nodes::BindParam.new, что вызвано вчерашним выпуском Arel 6.0.0. Проблема в том, что BindParam больше не принимает параметры и передается по ActiveRecord. Чтобы решить эту проблему ранее при использовании rake db:migrate, я установил другую версию Arel в моем Gemfile as explained by aaron-k here. Однако это изменение не помешала мне получить ту же ошибку при попытке создать «новый пользователь» от scaffolded ресурса пользователей в учебнике:Как адресовать несовместимость Arel с учебником Hartl Rails (глава 2)?

ArgumentError in UsersController#create 
wrong number of arguments (1 for 0) 

Extracted source (around line #271): 
269 # NOTE: The column param is currently being used by the sqlserver-adapter 
270 def substitute_at(column, index) 
271  Arel::Nodes::BindParam.new '?' 
272 end 

    # REFERENTIAL INTEGRITY ==================================== 

Rails.root: /home/ubuntu/workspace/toy_app 

app/controllers/users_controller.rb:30:in `block in create' 
app/controllers/users_controller.rb:29:in `create' 

Я не вижу ссылок на Arel в users_controller.rb, и поэтому я я задаюсь вопросом, где еще мне понадобится более старая версия Arel. Может быть, это проблема с размещением его через Cloud9 с использованием rails server?

ответ

1

Обновление кристалла Arel сломало миграцию в Rails 4 beta. См. here. Исправление исправлено.

Смежные вопросы