Kami Tidak Sakit Mental

Ketika pertama kali mengetahui tentang gagasan revolusi mental dari Jokowi, saya cukup kaget. Kalau tidak salah, pertama kali saya membacanya adalah dari berita di situs Tempo ini. Saya kutipkan tanpa mengurangi satu kata pun, ”satu yang sangat penting menurut saya adalah revolusi dari mental. Dari negativisme menjadi positivisme. Ini penting sekali untuk mengubah mindset karena kita ini bangsa yang besar”. Saya tidak habis pikir bagaimana seorang pejabat publik yang gemar blusukan untuk (konon) menyerap aspirasi publik bisa mendapatkan kesimpulan bahwa masyarakat kita memiliki mental “negativisme”. Tempo bilang, Jokowi menyatakan bahwa revolusi mental inilah yang diperlukan agar Indonesia maju.

Tahun ini ibu saya berusia 56 tahun. Sejak lulus kuliah di IKIP sampai sekarang Ibu bersetia dengan satu profesi: guru fisika di sebuah sekolah menengah atas negeri di Jakarta. Kalau ada satu hal yang pasti dan konstan meningkat selama puluhan tahun pengabdiannya sebagai guru adalah jam berangkat ke sekolah. Terakhir yang saya tahu (karena sekarang sudah tidak serumah lagi dengan Ibu), setiap pagi Ibu berangkat jam 5.30 dari rumah demi mengalahkan macet Jakarta yang kian menggila. Dan saya tahu banyak guru lain seperti ibu saya, rela pagi-pagi melakukan perjalanan komuter yang jauh dari rumah mereka di pinggiran kota. Juga banyak orang dari latar belakang pekerjaan lain yang menghadapi persoalan yang sama.

Ketika Jokowi dulu maju menjadi calon gubernur DKI Jakarta, saya berapi-api memberitahu Ibu, “insya Allah nanti Jokowi akan perbaiki Jakarta, Ma. Mama ga perlu lagi berangkat pagi-pagi buta untuk menghindari macet. Jakarta baru, Ma, Jakarta baru akan datang,” begitu saya dengan semangat mempromosikan Jokowi. Ibu saya hanya tersenyum dan bilang, “ya bagus lah kalau dia bisa, andaikan dia ga bisa dan Jakarta tambah macet pun, Mama tinggal bangun lebih pagi”. Dua tahun berselang, yang konstan meningkat selama masa jabatan Jokowi yang singkat adalah kemacetan dan jam berangkat Ibu. Sekarang beliau jam 5.15 harus sudah berangkat, kalau tidak hampir pasti sampai di sekolah terlambat.

Ada banyak ibu lain seperti ibu saya. Ada banyak cerita lain yang mirip dengan ibu saya pastinya. Seberapa beringas pun Jakarta memberikan kemacetan, rakyat selalu punya mental positif untuk mengatasi persoalan dengan mandiri. Mulai dari, “kita bangun lebih pagi”, “kita beli motor”, “kita cicil mobil”, hingga “kita cari kos-kosan atau kontrakan yang dekat dengan pusat kota ya”. Ini kredit buat mereka, tapi sebenarnya cela buat para pemimpinnya yang abai dan abstain. Jangankan lagi janji pembangunan Monorel (yang ternyata sekarang mangkrak lagi padahal dulu dengan gagahnya Jokowi bilang urusan transportasi Jakarta tinggal perkara niat dan eksekusi), hal sederhana seperti penambahan armada bus TransJakarta saja bermasalah.

Barangkali justru masyarakat kita terlalu bermental positif sehingga terus mencari solusi sendiri, sehebat apapun mereka disulit-suliti oleh kebijakan publik yang tidak pro pada rakyat. Pemerintah abai menangani banjir? Kami tinggikan tembok di sekeliling rumah kami untuk mencegah air masuk rumah. Pemerintah menaikkan NJOP mulai dari 120% sampai 240%? Kita akan temukan cara membayarnya. Kalau tidak sanggup pun, kita pindah ke luar Jakarta. Orang-orang yang saya temui sehari-hari bermental positif dan sangat mandiri, seolah kehadiran pemerintah memang tidak pernah ditunggu. Makanya di lingkungan keluarga saya dianggap aneh karena semangat sekali memperhatikan perkembangan pilpres ini. “Presidennya siapa pun ya sama saja,” kata Ibu. “Kita ya tetap harus menyelesaikan masalah kita sendiri”. Dan saya cukup yakin mentalitas yang sama juga dimiliki oleh ratusan juta penduduk Indonesia yang lain. Kita selesaikan masalah kita sendiri. Kurang positif apa coba?

“Ah, ga mungkin ibu kamu ga pernah ngeluh!” barangkali begitu pikir Anda. Dan memang benar, sebagai manusia biasa pastilah Ibu pernah sesekali mengeluh. Saya pikir sesekali mengeluhkan jalanan yang macet, misalnya, sangat manusiawi dan wajar dibandingkan mereka yang menahan-nahan diri untuk tidak berkomentar sedikit pun mengenai kemacetan Jakarta di Twitter hanya karena khawatir akan dilihat sebagai kegagalan Jokowi dan berdampak buruk pada elektabilitasnya.

Teman-teman yang membaca tulisan ini, terutama yang pro Jokowi, barangkali akan lekas melabeli mentalitas seperti saya inilah yang dimaksud oleh Jokowi sebagai mentalitas negatif. Pembelaan saya, saya pun punya attitude yang sama dengan Ibu saya tadi. Tapi saya merasa perlu menyampaikan aspirasi saya yang memang barangkali bernada negatif ini. Ini kritik. Dan kondisi yang saya uraikan di atas memang nyata adanya. Pada beberapa kasus bahkan saya sempatkan memberi tautan ke media massa nasional untuk Anda cek sendiri. Kalau memberi kritik seperti ini yang dilabeli sebagai mentalitas negatif, maka saya justru khawatir jangan-jangan revolusi mental ini tujuannya membuat kita docile dan hilang daya kritisnya. Kekhawatiran saya, mengutip Mbah Sudjiwo Tedjo, capres yang dinabikan mematikan nalar.

Jadi, kepada Jokowi saya hendak sampaikan (dengan sedikit memodifikasi syair lagu Om Iwan Fals), “urus saja mentalmu, urus saja akhlakmu, peraturan yang sehat yang kami mau”. Kalau Anda terpilih, semoga Anda tidak sibuk menyelenggarakan berbagai ESQ atau training-training motivasi demi memperbaiki mental kami, insya Allah kami semua sehat mental. Buat saja program-program yang bagus dan memberi manfaat nyata, jangan hanya memberi harapan-harapan palsu seperti dua tahun kepemimpinan Anda di Jakarta.

Jokowi Keturunan Nabi

Belakangan ini muncul desas-desus yang cukup meresahkan saya: Joko Widodo disebut-sebut sebagai keturunan dari etnis minoritas tertentu. Padahal, saya tahu persis sebuah fakta penting bahwa Jokowi adalah keturunan nabi! Ini valid. Tidak percaya? Simak penjelasan berikutnya.

Tapi sebelum kita melangkah ke pembahasan mengenai nasab Jokowi, saya perlu sedikit menjelaskan “posisi” saya. Secara umum, saya memandang diri sendiri sebagai seorang simpatisan PKS. Tetapi, sebelum Anda menerapkan stereotip apapun yang mungkin Anda miliki tentang ciri-ciri seorang simpatisan PKS, riwayat pemilu saya: 2004 pilih PAN kemudian Amien-Siswono, 2009 pilih PKS kemudian JK-Wiranto, Pilkada DKI 2012 pilih Faisal-Biem kemudian Jokowi-Ahok, terakhir 2014 kemarin saya pilih Didik J. Rachbini. Saya berkeyakinan LHI bersalah dan bukan korban sebuah konspirasi tertentu, dan saya juga beranggapan bahwa Fahri Hamzah is a first class *sshole. Nah, Anda perlu tahu bias saya sebagai seorang simpatisan PKS, tetapi Anda juga perlu tahu bahwa belum tentu stereotip apa pun yang Anda miliki tentang simpatisan PKS berlaku kepada saya atau bahkan kepada semua orang yang selama ini Anda kategorikan sebagai kader/simpatisan PKS. Selanjutnya, mari judge tulisan saya dengan menggunakan prinsip yang diajarkan oleh Imam Ali, “unzhur maa qoola wa laa tanzhur man qoola”, lihat apa yang disampaikan, jangan lihat siapa yang menyampaikan.

Sejujurnya, menghadapi pemilu presiden ini, saya termasuk yang menentang pencapresan Jokowi. Ada sesi panjang tersendiri nanti mengenai kenapa saya menentang, lain waktu saja, belum tentu juga Anda tertarik. Hal yang ingin saya bahas sekarang adalah, meskipun menentang pencapresan Jokowi, saya pikir sangat penting bagi oposisi Jokowi untuk tetap berlaku adil terhadap Jokowi. Jangan karena kita oposisi Jokowi, lantas jadi fair segala hal kita lakukan untuk menjatuhkan Jokowi. Bukan sekedar isu bahwa Jokowi adalah keturunan Tionghoa yang sudah saya dengar. Jokowi pernah diisukan Syiah, Kristen, dan bahkan Yahudi/Illuminati. Mana yang benar? Apakah Jokowi seorang keturunan Tionghoa-Yahudi bermazhab Kristen Syiah dan anggota Illuminati? Ini kan ngawur. Jika kita menggunakan isu SARA seperti ini, tidak hanya secara moral salah, secara logika akhirnya kita jadi terlihat bodoh karena sporadisnya beragam label minoritas yang berusaha disematkan kepada Jokowi.

Katakanlah Anda tidak punya standar moral dalam soal membawa-bawa isu SARA, coba berhitung secara oportunis. Kalau Anda bikin desas-desus Jokowi itu golongan minoritas A, kira-kira apa yang terjadi? Alih-alih Anda mengalienasi calon pemilih Jokowi yang sudah ada sekarang, barangkali justru Anda sedang membuat orang-orang dari golongan minoritas A jadi berpihak kepada Jokowi. Padahal belum tentu Jokowi benar dari golongan minoritas A tersebut. Ini kalau kita bicara oportunis.

Sempat juga terpikir sebenarnya, jangan-jangan kampanye hitam yang menyerang isu SARA kepada Jokowi justru dibuat oleh orang-orang Jokowi sendiri? Untuk mencitrakan bahwa oposisi Jokowi adalah sekelompok orang-orang rasis intoleran yang anti minoritas, misalnya. Masalah utama dari teori ini adalah, memang di lingkaran pergaulan yang saya amati (media sosial seperti Twitter dan Facebook), cukup banyak kawan-kawan yang oposisi Jokowi yang giat ikut menyebarkan materi-materi SARA ini. Terlepas dari siapa sebenarnya yang membuat materi-materi SARA tersebut.

Padahal masih banyak sekali titik serang yang bisa kita ambil terhadap Jokowi. Mulai dari kelakar yang tidak substansial seperti, “revolusi mental? Are you mental, Pak?” atau “cie cie yang ikutan jadi perampok frekuensi publik” hingga hal-hal yang substansial seperti: bagaimana komitmen Jokowi terhadap penegakkan HAM jika dia berkawan dengan jendral Hendropriyono yang juga punya background abu-abu dalam soal HAM? Masih soal HAM, apa berani Jokowi usut tuntas kejahatan DOM di Aceh? Seperti apa program Jokowi di bidang ekonomi nanti? Dan sebagainya.

Jadi, kawan-kawan oposisi Jokowi, mari kita berlaku adil kepada Jokowi. Kalau kita merasa jengah dengan kelakuan fanboy Jokowi yang fanatik tidak rasional kepada Jokowi, jangan kita berdiri di spektrum yang sebaliknya: benci tidak rasional kepada Jokowi. Apalagi sampai membawa-bawa isu SARA. Tidak etis secara moral, dan tidak ada untungnya secara oportunis.

Oh iya, lupa, soal Jokowi keturunan nabi. Ini benar, setidaknya menurut ajaran agama kan kita semua keturunan nabi. Ahok keturunan nabi. Saya keturunan nabi. Anda keturunan nabi. Nabi Adam.

 

Akademi Muslim

Prolog

Beberapa bulan terakhir ini sebenarnya frekuensi menulis saya sedang meningkat cukup pesat. Karena kebetulan kebutuhan finansial meningkat drastis sejak memutuskan untuk mencicil rumah bersama istri, akhirnya saya mencoba mengajukan diri untuk menjadi kontributor di sebuah blog teknologi, tentunya dengan mengharapkan imbalan finansial. Kebetulan pula, saya diterima. Jadilah, sekitar tiga bulan belakangan saya menulis di sini. Cukup produktif juga ternyata, selama tiga bulan tersebut saya menghasilkan lebih dari dua puluh artikel. Bukan statistik yang impresif bagi seorang blogger, tapi peningkatan yang berarti buat saya sendiri sebagai pribadi.

Rupanya saya ketagihan. Dibayar untuk menulis ternyata memberi saya sensasi yang (saya bayangkan) mirip dengan sensasi seorang pesepakbola profesional yang dibayar untuk bermain bola. Rasa ketagihan ini yang kemudian membawa saya kepada seseorang yang menjadi inspirasi tulisan ini.

Chris

Namanya Christopher Farnsworth. Saya bertemu dengannya secara online karena dia sedang mencari penulis lepas pada blog yang dikelolanya dan saya berminat untuk menjadi kontributor di sana. Hal yang menarik, blog yang ia kelola adalah: Muslim Academy. Awalnya saya berpikir bahwa Chis adalah seorang muallaf. Pada sesi diskusi kami yang pertama kali, perkenalan dari dia cukup tegas, “I’m not a muslim and not thinking to be one”. Saya sedikit heran, “lantas kenapa Anda mengelola situs Muslim Academy?” Chris menjawab dengan memberikan saya link ke tulisan ini. Saya kutipkan sedikit tulisan tersebut pada bagian yang paling mengena buat saya berikut ini,

While learning Arabic, I had the opportunity to take classes with some amazing people living in the Middle East.  What I found was that they had as many misconceptions about Americans as I did about them.  What I also learned was that there’s an entire other world out there, and dialogue is better than outright nastiness.

So I created a blog to help fulfill this mission – helping both sides get to know each other.

Setelah membaca tulisan Chris tadi, saya katakan pada dia, “Anda punya tujuan yang mulia”. Memang itulah yang pertama kali terbersit di benak saya. Apalagi setelah pembicaraan lebih lanjut, saya ketahui bahwa dia mendanai sendiri biaya pengelolaan blog tersebut dengan menyisihkan sebagian penghasilannya dari pekerjaan tetapnya sebagai seorang pengacara. Saya tambah percaya bahwa  niatan Chris ini memang baik, tanpa ada pretensi aneh-aneh di belakangnya.

Ridho

Tentu sebagian besar muslim hafal, atau paling tidak, pernah mendengar kutipan ayat Quran dari surat Al-Baqarah ayat 120. Kira-kira terjemahannya seperti ini,

Dan tidak akan ridho kepadamu orang-orang Yahudi dan Nasrani hingga kamu mengikuti millah (jalan hidup) mereka. Katakanlah: ‘Sesungguhnya petunjuk Allah itulah petunjuk (yang benar).

Pada sebuah diskusi di mailing list alumni SMA saya, ayat tadi adalah argumen yang sering dikemukakan oleh seorang peserta diskusi ketika membahas mengenai banyak isu. Obama vs McCain? Keduanya sama saja, tidak akan ridho terhadap ummat Islam, seperti yang sudah digariskan pada surat Al-Baqarah ayat 120. Obama vs Romney? Al-Baqarah 120. Argumen-argumen berikut tidak benar-benar terjadi di milis tersebut, tapi argumen yang sama bisa kita ekstrapolasikan sebagai berikut; Apa tidak berbahaya bagi ummat Islam kalau Ahok terpilih sebagai wakil gubernur? Al-Baqarah 120. Kalau memilih menteri yang non muslim? Al-Baqarah 120. Kalau partner bisnis yang non muslim? Al-Baqarah 120. Apa iya tidak satu pun orang Yahudi dan Nasrani yang baik terhadap ummat Islam?

Saya bukan seorang ulama, ahli fiqih, atau ahli tafsir. Tapi saya pikir, persoalan tidak akan ridho ini tidak sesederhana dan seliteral itu untuk dipahami. Misalnya saja, jika kita secara literal yakin bahwa seluruh orang Yahudi dan Nasrani tidak akan ridho terhadap kita, lantas kenapa kok Rasul malah memberi perlindungan terhadap kafir dzimmi? Apa Rasul tidak sedang memelihara musuh dalam selimut? Misal yang lain, jika semua Yahudi dan Nasrani pasti menginkan ummat Islam masuk ke agama mereka, bagaimana kita menjelaskan muallaf dari kedua kaum tersebut? Apa Quran telah gagal memprediksi adanya orang-orang Yahudi/Nasrani yang akan memeluk Islam di kemudian hari?

Sekali lagi, saya pikir ada banyak hal yang perlu kita pelajari sebelum secara serampangan menggunakan ayat Quran untuk menghakimi aneka persoalan. Ada banyak hal yang perlu masuk perhitungan kita, misalnya: sebab turunnya ayat tersebut, makna literal ayat tersebut, dan tafsir ayat tersebut menurut alim ulama yang terkemuka. Saat menghadapi sebuah ayat Quran, berapa banyak dari kita yang tahu apa penyebab turunnya ayat tersebut? Seberapa banyak dari kita yang mengerti bahasa Arab, nahwu dan sharaf-nya? Sudah berapa banyak buku tafsir yang kita baca tentang ayat tersebut? Dan jujur saja, jika ditanyakan seperti ini, maka saya akan bilang, saya ini sangat awam dalam ilmu agama.

Generalisasi

Trend yang muncul belakangan menurut saya cukup menggemaskan. Saya ambil contoh dari kasus film Innocence of Muslim. Film amatiran ini dibuat oleh seorang produser yang latar belakangnya tidak jelas dan bahkan dengan melakukan penipuan terhadap aktor-aktor yang bermain di film tersebut. Film amatiran seperti ini mampu membuat banyak ummat Islam di berbagai negara berdemonstrasi ke kedubes Amerika Serikat dan pada salah satu demonstrasi di Benghazi, Libya, membuat jatuh korban jiwa.

Apakah saya tidak menyukai Amerika Serikat? Iya. Tapi bukan karena sikap mereka yang membiarkan film Innocence of Muslim beredar di internet. Saya tidak menyukai Amerika Serikat sebagai negara karena invasinya terhadap banyak negara Islam dengan dalih untuk menumpas terorisme. Saya tidak menyukai Amerika Serikat sebagai negara karena berbagai drone yang dikirimnya ke perbatasan negara-negara muslim. Saya tidak menyukai Amerika Serikat sebagai negara karena sikap acuhnya sebagai anggota Dewan Keamanan PBB terhadap agresi yang dilakukan Israel ke wilayah-wilayah Palestina (meskipun nampaknya Obama agak sedikit lebih baik dalam hal ini dibandingkan dengan Bush). Tapi membiarkan sebuah film amatiran beredar di internet (yang justru sebenarnya tidak akan mempunyai signifikansi apa pun jika film tersebut tidak digubris oleh dunia Islam) bukan salah satu alasan saya tidak menyukai Amerika Serikat sebagai negara.

Apa saya tidak menyukai seluruh warga Amerika Serikat? Tentu tidak. Jika kita coba sedikit bermain-main di berbagai situs dari AS yang cenderung liberal/progresif, Huffington Post misalnya, maka dalam beberapa diskursus akan bisa kita lihat bahwa banyak warga negara AS yang kemudian menyayangkan terjadinya perang di Irak dan Afghanistan. Cukup banyak juga yang mengecam adanya resistensi terhadap pembangunan islamic center di dekat ground zero tragedi 9/11. Tak kurang dari walikota New York sendiri, Michael Bloomberg, menyatakan dukungannya terhadap pembangunan tersebut. Ini dua contoh saja yang terpikir secara spontan di benak saya saat ini.

Epilog

Orang-orang seperti Chris, Bloomberg dan orang-orang non muslim yang saya kenal di keseharian saya pada umumnya, membuat saya tetap berbaik sangka bahwa dunia ini tidak melulu berisi Islam dan orang-orang yang sedemikian gusarnya berupaya untuk memerangi Islam terus menerus. Kekerasan dan penindasan terhadap kelompok agama, etnis, suku, atau kelompok apa pun di dunia ini masih terjadi dan bahkan mungkin sedang berlangsung saat ini juga. Tapi, mencurigai semua orang yang tidak memiliki kesamaan suku/agama/etnis/negara/ideologi sebagai musuh bukanlah solusi permasalahan tersebut. Lalu, Al-Baqarah ayat 120 gimana dong? Saya pikir kita perlu banyak iqra dulu sebelum bisa menjawabnya, akhi.

Rails Nested Form with Has Many Through Associaton

I tend to avoid using nested form in my rails code. If needed, I always use form_tag rather than fields_for. But in my recent project, I give a try on using nested form. It turns out that Rails’ way to build a nested form is… how to say this delicately… beautiful. So, I think, I would like to post an article on this.

As usual, I learn how to use nested form from Ryan Bates’ Railscasts and then modify it to meet my need. In this post, I particularly focus on how to use it with three models which share a has many through association among them, just like what I did in the actual project. And for your reference, you can also check the Railscasts’ episodes here and here.

The Project

In my actual project, I had to do a calibration on something (well, I can’t name what, I can’t violate the NDA). The calibration involved several steps that can be dynamically managed. And then, for every step, I had to mark whether the calibrated thing pass the step or not and I had to enable the tester to write some notes about the step conducted. In short, I translated this scheme into a three models wtih has many through association. The models are: Calibration, CalibrationStep, and CalibrationResult. Calibration has many CalibrationStep through CalibrationResult.

1. Generation

Just like any other development, let Rails kindly does our needed auto-generated codes. Of course,  we start from generating the simple app we’re going to use through this whole tutorial. I’d like to name it “calibrator”. Somehow it sounds stupid, but let it be.

rails new calibrator

For both Calibration and CalibrationStep, we will generate the full MVC. Here it goes the Calibration:

rails generate scaffold Calibration name:string tester:string

And here goes the CalibrationStep

rails generate scaffold CalibrationStep step_name:string step_number:integer

While for the CalibrationResult, we will only generate the model:

rails generate model CalibrationResult calibration_id:integer calibration_step_id:integer result:boolean note:string

And then we end this step by migrating our database.

rake db:migrate

2. Setting up the association

Now, let’s code. I start from the Calibration model, here is what we code:

class Calibration < ActiveRecord::Base
  has_many :calibration_steps, :through => :calibration_results
  has_many :calibration_results
  accepts_nested_attributes_for :calibration_results
end

You should note that it’s just ordinary association that we put in our Calibration model with a slight addition the accepts_nested_attributes_for for our nested form later on.

And then, here is our CalibrationStep model, nothing special really:

class CalibrationStep < ActiveRecord::Base
  has_many :calibrations, :through => :calibration_results
  has_many :calibration_results
end

And the last, our CalibrationResult model:

class CalibrationResult < ActiveRecord::Base
  belongs_to :calibration
  belongs_to :calibration_step
end

3. Modifying the controllers

The only controller we need to worry about is our CalibrationsController class. We should modify its show and new method. Here is our modification:

class CalibrationsController < ApplicationController
  # some lines are deleted...
  def show
    @calibration = Calibration.find(params[:id])
    @calibration_steps = CalibrationStep.find(:all, :order => 'step_number ASC')

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @calibration }
    end
  end

  def new
    @calibration = Calibration.new
    @calibration_steps = CalibrationStep.find(:all, :order => 'step_number ASC')
    calibration_result = @calibration.calibration_results.build()

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @calibration }
    end
  end
  # some lines are deleted....
end

You should notice that we added a variable called calibration_result with value generated by a method called build. This build method is the key ingridients of our nested form. This method, according to Rails documentation,

returns a new object of the collection type that has been instantiated with attributes and linked to this object through the join table, but has not yet been saved.

For detailed description about this, you can look it up here with keyword collection.build().

We can leave the other controllers as they are.

4. Modifying the views

There are at least three views that we need to tweak. The first one is our app/views/calibrations/_form.html.erb file:

<_ form_forcalibration="form_forcalibration" do="do" f="f" _="_"><br clear="none"></br>
  # some lines are deleted....<br clear="none"></br>
  <div class="field"><br clear="none"></br>
    <_ f.label="f.label" name="_:name" _="_"><br clear="none"></br>
<br clear="none"></br>
    <_ f.text_field="f.text_field" name="_:name" _="_"><br clear="none"></br>
  </_>

 

    <_ f.label="f.label" tester="_:tester" _="_"><br clear="none"></br>
<br clear="none"></br>
    <_ f.text_field="f.text_field" tester="_:tester" _="_"><br clear="none"></br>
  </_>

 

  <table border="1"></table>

   

<tr></tr>

      <td colspan="1" rowspan="1">Step Name</td>

      <td colspan="1" rowspan="1">Result</td>

      <td colspan="1" rowspan="1">Note</td>

   
    <_ calibration_steps.each="calibration_steps.each" do="do" calibration_step="calibration_step" _="_"><br clear="none"></br>
      <_ f.fields_for="f.fields_for" calibration_results="_:calibration_results" do="do" buildernbsp="buildernbsp" _="_"><br clear="none"></br>
        <_ render="render" calibration_result_fields="calibration_result_fields" f="">builder, :calibration => @calibration, :calibration_step => calibration_step %><br clear="none"></br>
      <_ end="end" _="_"><br clear="none"></br>
    <_ end="end" _="_"><br clear="none"></br>
  <br clear="none"></br>
  <br clear="none"></br>
  <div class="actions"><br clear="none"></br>
    <_ f.submit="f.submit" _="_"><br clear="none"></br>
  </_>

<_ end="end" _="_"><br clear="none"></br>

Then, we need to add the partial view we described in our form earlier by adding this app/views/calibrations/_calibration_result_fields.html.erb file:

<table><tbody><tr></tr>
</tbody>
</table>

  <table><tbody><tr><td colspan="1" rowspan="1"><h calibration_step.step_name="calibration_step.step_name" _="_"></h>
</td>
</tr>
</tbody>
</table>

  <table><tbody><tr><td colspan="1" rowspan="1"><br clear="none"></br>
    <_ f.radio_button="f.radio_button" result="_:result" true="true" _="_">Pass<br clear="none"></br>
    <_ f.radio_button="f.radio_button" result="_:result" false="false" _="_">Fail<br clear="none"></br>
  </_>
</_>
</td>
</tr>
</tbody>
</table>

  <table><tbody><tr><td colspan="1" rowspan="1"><br clear="none"></br>
    <_ f.text_field="f.text_field" note="_:note" _="_"><br clear="none"></br>
    <_ f.hidden_field="f.hidden_field" calibration_step_id="_:calibration_step_id" value="">calibration_step.id %><br clear="none"></br>
  </_>
</_>
</td>
</tr>
</tbody>
</table>

And the last, we need to show the result. For this tutorial, I will just put it in my Calibration’s view that is in app/views/calibrations/show.html.erb file:

<_ notice="notice" _="_"></_>

  <strong>Name:</strong>
  <_ calibration.name="calibration.name" _="_"><br clear="none"></br>
</_>

  <strong>Tester:</strong>
  <_ calibration.tester="calibration.tester" _="_"><br clear="none"></br>
</_>

<table border="1"></table>

  <table><tbody><tr></tr>
</tbody>
</table>

    <table><tbody><tr><td colspan="1" rowspan="1">Step Name</td>
</tr>
</tbody>
</table>

    <table><tbody><tr><td colspan="1" rowspan="1">Result</td>
</tr>
</tbody>
</table>

    <table><tbody><tr><td colspan="1" rowspan="1">Note</td>
</tr>
</tbody>
</table>

 
  <_ calibration_steps.each="calibration_steps.each" do="do" calibration_step="calibration_step" _="_"><br clear="none"></br>
    <tr></tr>
<br clear="none"></br>
      <td colspan="1" rowspan="1"><_ calibration_step.step_name="calibration_step.step_name" _="_"></_>

      <_ calibration_result="CalibrationResult.find(<br">        :first, :conditions => {:calibration_step_id => calibration_step.id, :calibration_id => @calibration.id}) %><br clear="none"></br>
      <_ if="if" calibration_result.nil="calibration_result.nil" _="_"><br clear="none"></br>
        <td colspan="1" rowspan="1"><br clear="none"></br>
          <_ if="if" calibration_result.result.nil="calibration_result.result.nil" _="_"><br clear="none"></br>
            <_ calibration_result.result="=true" _="_" pass="pass" _="_:_" fail="fail"><br clear="none"></br>
          <_ else="else" _="_"><br clear="none"></br>
            Not yet tested<br clear="none"></br>
          <_ end="end" _="_"><br clear="none"></br>
        </_>

        <td colspan="1" rowspan="1"><h calibration_result.note="calibration_result.note" _="_"></h>
</td>

      <_ else="else" _="_"><br clear="none"></br>
        <td colspan="1" rowspan="1">Not yet tested</td>
<br clear="none"></br>
        <td colspan="1" rowspan="1">Not yet tested</td>
<br clear="none"></br>
      <_ end="end" _="_"><br clear="none"></br>
    <br clear="none"></br>
  <_ end="end" _="_"><br clear="none"></br>
<br clear="none"></br>
</_>

<_ link_to="link_to" edit="edit" edit_calibration_pathcalibration="edit_calibration_pathcalibration" _="_">|<br clear="none"></br>
<_ link_to="link_to" back="back" calibrations_path="calibrations_path" _="_"><br clear="none"></br>

5. That’s it

That’s it. Now, you can try to add your calibration steps and then try to use the nested form in your calibration’s view.

Just Recovered, Not Fully Though

I’m not sure if it’s my hosting provider’s fault or someone hacked into my account, all the content from my blog was all wiped out. I’m not sure if I can recover any of it at all. But currently there are some posts that are stored on my mobile devices, thanks to WP app for Android. I’ll try to recover it as fast as I can.