本文介绍了AGGED_WITH(params[:kill])ArgumentError:错误的参数数量(给定2个,预期为1个)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对rails 5 beta 3中的gem作为可标记动作有问题。

project.rb​:

class Project < ActiveRecord::Base
  acts_as_taggable
  acts_as_taggable_on :skills
end

routes.rb

get 'tags/:skill', to: 'projects#index', as: :skill

projects_controller.rb

class ProjectsController < ApplicationController
  def index
    if params[:category] && Category.exists?(params[:category])
      @category = Category.find(params[:category])
      @projects = @category.projects.order("projects.created_at DESC")
    elsif params[:skill]
      @projects = Project.tagged_with(params[:skill])
    else
      @projects = Project.all
    end

    @categories = Category.all
  end
end

在第@projects = Project.tagged_with(params[:skill])行,我收到以下错误:

推荐答案

看起来tagged_with正在内部调用quote_value,是sanitizealias_method

sanitize只需要一个参数,但tagged_with使用两个参数调用quote_value,这导致了问题。

请参阅acts_as_taggableActiveRecord::Sanitizationcommit引入此更改。

这篇关于AGGED_WITH(params[:kill])ArgumentError:错误的参数数量(给定2个,预期为1个)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-26 14:01