diff options
-rw-r--r-- | app/models/blog_post.rb | 6 | ||||
-rw-r--r-- | app/views/admin/blog/posts/_form.html.erb | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/app/models/blog_post.rb b/app/models/blog_post.rb index 025cc31..e58de59 100644 --- a/app/models/blog_post.rb +++ b/app/models/blog_post.rb @@ -15,10 +15,8 @@ class BlogPost < ActiveRecord::Base named_scope :live, :conditions => {:draft => false} def category_ids=(ids) - self.categories.clear - - self.categories += ids.reject{|id| id.blank?}.collect {|c_id| - category = Category.find(category_id.to_i) rescue nil + self.categories = ids.reject{|id| id.blank?}.collect {|c_id| + (BlogCategory.find(c_id.to_i) rescue nil) }.compact end diff --git a/app/views/admin/blog/posts/_form.html.erb b/app/views/admin/blog/posts/_form.html.erb index 22f7385..f4322df 100644 --- a/app/views/admin/blog/posts/_form.html.erb +++ b/app/views/admin/blog/posts/_form.html.erb @@ -27,8 +27,12 @@ <ul class='blog_categories'> <% @blog_categories.each do |category| %> <li> - <%= check_box_tag 'blog_post[category_ids][]', category.id, {}, :id => (id="blog_post_category_ids_#{category.id}") %> - <%= label_tag 'blog_post[category_ids][]', category.title, {:class => 'stripped', :for => id} %> + <%= check_box_tag 'blog_post[category_ids][]', category.id, + @blog_post.categories.include?(category), + :id => (id="blog_post_category_ids_#{category.id}") %> + <%= label_tag 'blog_post[category_ids][]', category.title, + :class => 'stripped', + :for => id %> </li> <% end %> </ul> |