Ste*_*sch 0 ruby ruby-on-rails ruby-on-rails-5
我在Rails 5 beta 3中遇到了gem acts-as-taggable-on的问题.
project.rb:
class Project < ActiveRecord::Base
acts_as_taggable
acts_as_taggable_on :skills
end
Run Code Online (Sandbox Code Playgroud)
的routes.rb
get 'tags/:skill', to: 'projects#index', as: :skill
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
在线@projects = Project.tagged_with(params[:skill])我得到以下错误:
ArgumentError:来自/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.0.0.beta3/lib/active_record/sanitization.rb:8:in的参数数量错误(给定2,预期为1) `的sanitize"
看起来像tagged_with在quote_value内部调用,这是一个alias_methodfor sanitize.
sanitize只需要一个参数,但是使用两个参数进行tagged_with调用quote_value,这会导致问题.
请参阅acts_as_taggable,ActiveRecord :: Sanitization以及引入此更改的 提交.
| 归档时间: |
|
| 查看次数: |
1955 次 |
| 最近记录: |