summaryrefslogtreecommitdiff
path: root/_posts/2010-11-05-rails-3-has_many-through-checkboxes.html
diff options
context:
space:
mode:
Diffstat (limited to '_posts/2010-11-05-rails-3-has_many-through-checkboxes.html')
-rw-r--r--_posts/2010-11-05-rails-3-has_many-through-checkboxes.html30
1 files changed, 30 insertions, 0 deletions
diff --git a/_posts/2010-11-05-rails-3-has_many-through-checkboxes.html b/_posts/2010-11-05-rails-3-has_many-through-checkboxes.html
new file mode 100644
index 0000000..84838a2
--- /dev/null
+++ b/_posts/2010-11-05-rails-3-has_many-through-checkboxes.html
@@ -0,0 +1,30 @@
+---
+layout: post
+title: Rails 3 has_many :through checkboxes
+tags:
+- Development
+status: publish
+type: post
+published: true
+meta:
+ _edit_last: '1'
+ _wp_old_slug: ''
+---
+On Twitter I wrote:
+<blockquote>Rails does it for you, just add sheet_ids[] to the form with the checkboxes and it's done! will blog.</blockquote>
+Being a music teacher, my fiance needed to keep record of tests her students perform. Also, each test has several sheets that need mentoring and monitorization through several parameters. I decided to help and reentered the Rails world, and since I have found no answer on this topic, I decided to write it myself.
+
+This situation is a perfect model for using the so well known <a href="http://railscasts.com/episodes/17-habtm-checkboxes">HABTM checkboxes</a>.
+
+<!--more-->
+<h3>A closer look at the problem</h3>
+<h4>Models</h4>
+[gist id=663287]
+
+A pretty basic setup. The <em>venues</em> (the students' tests) include several <em>sheets</em> for them to study and for the teacher to evaluate, through <em>exhibitions</em> that have several criteria.
+<h4>View</h4>
+[gist id=663417]
+
+I simplified the form just so you see what's at stake. The same principle of the HABTM checkboxes applies to a has_many :through association. Instead of new entries in a venues_sheets table, new <em>Exhibitions</em> are created with the respective foreign ids in them.
+
+The controller needs no mention because it stays the same. It just saves / updates the model. This is why I love Rails: the hard work is done: you just need to focus on what matters.