2015-03-13 7 views
1

Я пытаюсь использовать act_as_taggable_on gem. Все работает в консоли, я могу использовать теги с экземпляром модели, отобразить tag_list и ссылку на страницу результатов на основе выбранного тега. Моя проблема в том, что мои теги, введенные в форму создания, не сохраняются в db. Я уже проверил strong_params:Невозможно назначить теги в Rails 4.2 из формы модели using act_as_taggable

params.require(:contest).permit(:name, :description, :user_id, :show_name, :tag_list => [],...

+0

Некоторая ссылка на код будет полезна здесь. – Almaron

+0

Попробуйте отладить то, что приходит через это разрешение. Я понимаю, ты был бы удивлен. – Almaron

+0

новичок здесь. как мне отладить разрешение? –

ответ

0

У меня была такая же проблема в Rails 4.2, рубин 2.2, и акты-а-taggable-на 3.4 приложения. Я изменил параметры в контроллере, чтобы обновить модель. Изначально я был

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

if @post.update(params[:post].permit(:title, :body, :tag_list => [])) 
    redirect_to @post 
else 
    render 'edit' 
end 

конец

Я изменил Params: tag_list => [] просто: tag_list. Оно работает. Мой код теперь выглядит следующим образом:

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

    if @post.update(params[:post].permit(:title, :body, :tag_list)) 
     redirect_to @post 
    else 
     render 'edit' 
    end 
    end 
    def tagged 
    if params[:tag].present? 
     @post = Post.tagged_with(params[:tag]) 
    else 
     @posts = Post.postall 
    end 
    end 

    private 
    def post_params 
     params.require(:post).permit(:title, :body, :image, :image2, :tag_list => []) 
    end 

Надеюсь, это поможет.

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

  • Нет связанных вопросов^_^