2015-09-09 3 views
-1

Не могли бы вы помочь понять, почему категории не работают правильно? Так что я прочитал довольно много руководств о, и не нашел, как разрешить егоДобавить категории для должностей - Rails

Я создал миграции для категории

class CreateCategories < ActiveRecord::Migration 
    def change 
    create_table :categories do |t| 
     t.string :name 
     t.text :description 
     t.integer :count 
     t.timestamps null: false 
    end 
    end 
end 

И добавил для сообщений нового поля - категория

Затем создала модель для категории

class Category < ActiveRecord::Base 
    has_many :posts 
end 

Редактировать сообщение модель

class Post < ActiveRecord::Base 
    acts_as_ordered_taggable 
    belongs_to :category 

    validates :title, presence: true 
    validates :category, presence: true 
    .. 
end 

Созданный шаблон

<%= form_for @post do |f| %> 
    <p> 
    <%= f.label :title %> <br> 
    <%= f.text_field :title %> 
    </p> 
    <p> 
    <%= f.label :category %> 
    <%= f.select :category, Category.all.collect {|c| [c.name, c.name]} %> 
    </p>  
<% end %> 

редактировал немного сообщению контроллер

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

    if @post.update(params[:post].permit(:title, :thumbnail, :body, :description, :tag_list, :@post.category)) 
    redirect_to @post 
    else 
    render 'edit' 
    end 
end 
+1

Просто чтобы убедиться: вы добавить поле с именем 'category_id' файл' posts' таблицы? (вы упоминаете 'category', но его следует называть' category_id') – nathanvda

+0

Спасибо, он решил вопрос – Antoni

ответ

2

измените эту строку в контроллере:

if @post.update(params[:post].permit(:title, :thumbnail, :body, :description, :tag_list, :category_id)) 

Я изменил

:@post.category 

к

:category_id 

Это передает символ к методу разрешения разрешить параметр запроса для категории

+0

Спасибо, сейчас он работает – Antoni

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