0

Обрушивая голову на стену с этим. Я реализовал act_as_taggable_on, но даже если у меня есть белые параметры (как в документации), я получаю ошибку параметров, которые не были пропущены.act_as_taggable_on whitelisted сильные параметры все еще не переданы.

Не могу понять, почему.

Все помочь оценить.

В course.rb

class Course < ActiveRecord::Base 

    acts_as_taggable 
    acts_as_taggable_on :skills 
    [...] 
end 

В courses_controller.rb

[...] 

def update 
@course.skill_list = params[:skill_list] 

respond_to do |format| 
    if @course.update(course_params) 
    format.html { redirect_to @course, notice: 'Course was successfully updated.' } 
    format.json { render :show, status: :ok, location: @course } 
    else 
    format.html { render :edit } 
    format.json { render json: @course.errors, status: :unprocessable_entity } 
    end 
end 
end 

def course_params 
    params.require(:course).permit(:name, :headline, :user_provider_name, :provider_id, :cost, :location, :duration, :skill_level, :no_provider, :format, :website, :contact, :description, review: [:headline, :body, :course_id, :user_id, :score], :skills => [], :skill_list => []) 
end 

Если: навыки не массив, то он выдает ошибку также.

В _form.html.erb

<div class="field"> 
<%= f.label :skills %><br> 
<%= f.text_field :skill_list %> 

Из журнала:

Started PATCH "/courses/15" for 127.0.0.1 at 2015-03-24 23:10:40 +0000 
Processing by CoursesController#update as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"A/4NFlFKwOU/tPQxfbMfh8vsu1dD4lGplqIbna1kooU=", "course"=>{"name"=>"Test course", "skill_list"=>"coding, html, debugging", "cost"=>"", "location"=>"", "duration"=>"", "skill_level"=>"", "format"=>"", "website"=>"", "contact"=>"", "headline"=>"", "description"=>""}, "commit"=>"Update Course", "id"=>"15"} 
    [1m[35mCourse Load (0.0ms)[0m SELECT "courses".* FROM "courses" WHERE "courses"."id" = ? LIMIT 1 [["id", 15]] 
    [1m[36mActsAsTaggableOn::Tag Load (1.0ms)[0m [1mSELECT "tags".* FROM "tags" INNER JOIN "taggings" ON "tags"."id" = "taggings"."tag_id" WHERE "taggings"."taggable_id" = ? AND "taggings"."taggable_type" = ? AND (taggings.context = 'skills' AND taggings.tagger_id IS NULL)[0m [["taggable_id", 15], ["taggable_type", "Course"]] 
Unpermitted parameters: skill_list 

ответ

0

Решение, которое я пришел в том, чтобы удалить acts_as_taggable_on :skills из моей модели и заменить :skill_list => [] с :tag_list

Я предполагаю, что это теряет множественная функциональность тега act_as_taggable_on, но по крайней мере она получает ее работу