1. yusukeee

    Posted

    yusukeee
Changes in title
+has many through 多多のアソシエーションを使ってcollection_check_boxes でカテゴリーのタグ付けを実装する。 ほぼビュー周り。
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,94 @@
+「Rails4のhas_many throughで多対多のリレーションを実装する」http://qiita.com/samurairunner/items/cbd91bb9e3f8b0433b99
+の次回がなかった(からかなり困った)のでビュー周りも紹介する。
+
+前半は上の記事と同じ
+
+<img width="663" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f34383537372f63393464653135332d666461382d386535352d313034332d3334313462313036303232322e706e67.png" src="https://qiita-image-store.s3.amazonaws.com/0/180936/57108ab8-550b-1a02-590e-3f44ce68436f.png">
+参考 http://qiita.com/samurairunner/items/cbd91bb9e3f8b0433b99
+
+イメージ画像を作るのは面倒だったので拝借。
+これのprojectsがarticlesにprojects_categoriesがarticle_categoriesになったバージョンと考えればいい。
+
+#model
+###category model
+```app/models/category.rb
+class Category < ActiveRecord::Base
+ has_many :article_categories
+ has_many :articles, through: :article_categories
+end
+
+```
+###article model
+```app/models/article.rb
+class Category < ActiveRecord::Base
+ has_many :article_categories
+ has_many :categories, through: :article_categories
+end
+
+```
+###article_categories model
+```app/models/article_categories.rb
+class ArticleCategory < ActiveRecord::Base
+ belongs_to :article
+ belongs_to :category
+end
+
+```
+
+ほぼ上の記事と一緒
+
+##ここからがいよいよ本番ビュー周り
+
+
+###article controller
+```app/controllers/articles_controller.rb
+def create
+ @article = Article.new(article_params)
+ @article.user = current_user
+ if @article.save
+ flash[:success] = "as you like"
+ redirect_to article_path(@article)
+ else
+ render 'new'
+ end
+ end
+
+......................................................................
+
+private
+ #ここがポイント category は collection_check_boxesのチェックボックスで複数選択の入力で値を渡す場合arrayで渡ってくるのでcategory_ids: []で受け取ると上手くいった
+ def article_params
+ params.require(:article).permit(:any, category_ids: [])
+ end
+
+
+```
+
+そして肝心のビューは
+
+###article new
+```app/views/articles/new.index.erb
+<%= f.collection_check_boxes :category_ids, Category.all, :id, :name do |ccb| %>
+ <% cb.label(class: "any")
+{ccb.check_box(class: "any") + ccb.text} %>
+ <% end %>
+
+```
+
+見たこと無い形だったのでクラスをつけるのに苦労した。
+
+これで指定したタグをつけるタイプのタグ付けを実装できる。
+
+
+
+参考 
+####collection_cheach_box
+http://qiita.com/sho012b/items/3a595fde14516081dff5
+####model周り
+http://qiita.com/samurairunner/items/cbd91bb9e3f8b0433b99
+
+初心者、初投稿なので心配。
+記法とかのアドバイスがあったらください。
+
+
+