ArgumentError: неверное количество аргументов (1 для 2)

Я совсем новичок в Rails, MVC и CRUD, и я пытаюсь использовать метод update для изменения количества голосов в посте. У меня следующий код в методе обновления контроллера Posts:

def update
    @post = Post.find(params[:id])

    if params[:vote] == 'up'
        @post.update_column(:ups => @post[:ups] + 1)
    elsif params[:vote] == 'down'
        @post.update_column(:downs => @post[:downs] + 1)
    end

    flash[:notice] = "Thanks for voting! This helps us determine important issues in our schools."

    redirect_to 'Posts#index'
end

и следующий код в моем routes.rb:

OpenMCJC::Application.routes.draw do
  root :to => 'posts#index'
  resources :posts
  match '/posts/:id/:vote', :to => 'posts#update'
end

После перехода к "/posts/3/up" выдает следующую ошибку:

ArgumentError in PostsController#update

wrong number of arguments (1 for 2)

Параметры запроса согласно странице такие:

{"id"=>"3",
"vote"=>"up"}

Не могли бы вы помочь мне понять, что пошло не так?

9
задан airplaneman19 11 January 2012 в 03:59
поделиться