Syndicate

Feed

Learning Ruby on Rails Day 40

Where did time go? Last time I added an entry to my Learning Ruby on Rails journal, it was May 6th. Today is October 30th. There may have been 40 days of learning between then and now. I am back into it — is what matters. Teaching myself Ruby on Rails has become a sort of yoga practice in my life. It feels mostly good and places a nice comfy shield between all the bad noise in my life and my easily-troubled head.

I have set each chapter of a book I have yet to finish reading as 'action' in my Action Method. The book is Simply Rails 2. I am plowing along. The grass is green and cut short and clean. Patrick Lenz is a fantastic writer. Thanks to him, the pasture smells great. Actually, I smelled something funny tonight. I got back into wrapping my head around RJS templates.

They are written in Ruby. Like *.html.erb templates, they are stored in the views folder. They have the extension .js.rjs because once the Rails engine is done with them JavaScript is returned to the browser. Ah, I am not explaining well. Good definition found in Foundation Rails 2: “RJS is Rails’s solution for generating JavaScript code using Ruby. [It] is a server-side solution for generating dynamic responses to AJAX requests without having to resort to writing [...] JavaScript. [...] RJS code [...] resides in specially named RJS templates that can be found in the same directories as our traditional HTML views. However, whereas our standard view template would be named something like index.html.erb, the RJS template for the same action would be named index.js.rjs. So you can see it [follows] the same naming convention with the first word [being] the action it’s associated to, the second [word] representing the type of content that we’re returning (js for JavaScript in this instance), and the final [word] representing the rendering engine that is used to parse the template (RJS for this).”

I usually install the vendor plugin jRails to get rid of Prototype and script.aculo.us when I build any new application. There exists a jRails gem now, but I didn't have much success with it.

jRails, FYI, has moved to github. “ennerchi” and “aaronchi” are the same guy. To install jRails:
ruby script/plugin install git://github.com/aaronchi/jrails.git

Not sure whose fault it is, probably that of jRails, but I'm sending the authenticity_token twice with every Ajax request.

[]

I am using the form_remote_tag helper:

<% form_remote_tag :url => story_votes_path(@story) do %>
  <p><%= submit_tag 'Shove This' %></p>
<% end %>

The following HTML is generated:

<form action="/stories/5-google/votes" method="post" 
onsubmit="jQuery.ajax({ data:jQuery.param(jQuery(this).serializeArray()) +
'&amp;authenticity_token=' + encodeURIComponent('zctxjCg1I5w9LTgk7YvvSEsvAFN4Km+FzvsJuU2Jrok='),
dataType:'script', type:'post', url:'/stories/5-google/votes'}); return false;">
  <div style="margin:0;padding:0">
    <input name="authenticity_token" type="hidden"
 value="zctxjCg1I5w9LTgk7YvvSEsvAFN4Km+FzvsJuU2Jrok=" /></div>
  <p><input name="commit" type="submit" value="Shove This" /></p></form>

The form already contains a hidden input field that stores the authenticity token (this protects against forgery). jQuery serializes the form, hence serializes that token, but then... it adds it again! That's not right.

data: jQuery.param(jQuery(this).serializeArray()) + '&amp;authenticity_token=' +
encodeURIComponent('zctxjCg1I5w9LTgk7YvvSEsvAFN4Km+FzvsJuU2Jrok='), ...

The following code should suffice:

data: jQuery.param(jQuery(this).serializeArray()), ....

Whatever.

Also, RJS requires some getting used to for me. Seems weird to have an Ajax request return JavaScript to execute, rather than JSON, or text data, or XML, or nothing. I usually use callback functions when doing Ajax: when the data is returned, if any, some JavaScript function is run, doing whatever to the page. There's really different shit happening here, although results are the same of course.

text/javascript; charset=utf-8

The JavaScript returned to the browser is a big Try and Catch. If a JavaScript error occurs, an alert box tells you what went wrong.

try {
jQuery("#vote-score").html("Score: 112");
jQuery("#vote-score").effect('highlight',{},2000);
} catch (e) { alert('RJS error:\n\n' + e.toString());
alert('jQuery(\"#vote-score\").html(\"Score: 112\");
\njQuery(\"#vote-score\").effect(\'highlight\',{},2000);'); throw e }

Eh, this looks a bit convoluted:

jQuery.param(jQuery(this).serializeArray())

Couldn't we just use this — not sure:

jQuery(this).serialize()

Unobtrusive jQuery

I prefer unobtrusive jQuery just because it's more manageable. I also like to write my own JavaScript — or at least be able to edit it. Ryan Bates shows here how to use jQuery without jRails. No helper functions. No JavaScript generated for you. Ryan Bates uses Ajax requests that return JavaScript as does jRails. But the JavaScript that's returned is stored, this time, in a .js.erb template.

The form on the page is submitted asynchronously thanks to some jQuery added to application.js. (Shown below.) Ryan Bates uses a simple jQuery.post call. And he does uses jQuery(this).serialize! I may try to modify my Shovell app (the book project in Simply Rails 2) to use a .js.erb template. What we're comfortable with may not be the better way, though. If I get used to using RJS templates, I may learn to love them. Not sure.

How to use jQuery with Rails - Screencast by Ryan Bates

Last edited by Caroline Schnapp about 7 years ago.

Comments

Find latest HD car

Find latest HD car wallpapers free on hdcarwall.com/

Good information and easy to

Good information and easy to understend. I needed similar information on assay and have founded it here www.essay-mania.com.

good

Interesting article. Too bad that there are not to many similar articles. But I found all and even more here
fresh-essay.com

Your post made me involved in Learning Ruby

I didn't know those files have extensions .jrs and .rjs thanks for this interesting information. Now I'm writing my college paper and I was looking for smth like this to relax my mind but after this article I decided to order my papers on http://www.papers-writings.com that is easier than to sit and write it througout the night!

consciousness

Hello, i feel that i saw you visited my web site thus i came to “return the favor”.I'm attempting to realize things to enhance my site!I suppose its alright to use a few of your ideas!!
consciousness

Happy New Year 2016 Wallpapers

Get Happy New Year 2016 Wallpapers free download.

kukuku

thank for information brother, is the nice nice amazing post you ready ? im ready be happy :)
suplemen patah tulang dan obat alami kencing nanah

wan mo dari cikiwan cikicu

wan mo dari cikiwan cikicu

Does Ruby Classes are available on Google Chromecast ?

Just Set up Chromecast in my TV. Does ruby classes are available on TV channels

Great

There are so many comments here that are really interesting and conducive to me thanks for sharing a link especially for sharing this blog.

Real Weddings

Good information and easy to understend.
Real Weddings

neviditelna podprsenka

Nice one, there's truly some sensible points on this website a number of my readers might realize this useful; i have to send a link, several thanks.

Future residents will be

Future residents will be able to walk to the existing Bartley MRT in the Circle Line. With such a short drive to the city area as well as the orchard and bugis area, entertainment for your love ones and family will come at a stone’s throw away.
gmod free to play

chromecast set up and Support

For chromecast set up and Chromecast Support, I provide teaching and help to those who use chromecast and facing technical problems in usage. Ruby is currently demand for programming but it will R.I.P future as Google hide secret weapon of programming call Android development. App are possible with the help of Android and google planning to remove Java Courses from Android very soon. Go (programming language) is set in pipeline to fire. Best thing that google can't beat Ruby is it's security reach. Much stronger then PHP and .net.

Best wishes to Ruby Developers !!

It is hard to have such

It is hard to have such website for itunes gift cards.

NB

Thank you for your very informative blog article. I wrote my master thesis about this and I came basically to the same conclusion. Keep up the good work with your cheat field blog!

अमीषा पटेल

Very interesting! By the way, you can order excellent papers online

hot bollywood

Good information and easy to understend

Learn Ruby via chromecast within two month

Hello,

I know ruby is bit tough language. How much time it would take me to get expert. I got an app in my android phone. which gives tutorial classes online. I use chromecast setup with my big screen tv. but problem is, how should i record them.

Kindle Unlimited Is Filled With 3,000 Page Garbage Books Which S

I continue to be impressed by the high level of Blogs that y'all provide. It's fabulous!

Apple iphone 3G 8GB Full Specs & Price in Pakistan

Find latest Apple iphone 3G 8GB Full Specs & Price in Pakistan. Apple iphone 3G Price in Pakistan free updated

very nice dude. Clash Royale

very nice dude.

Clash Royale Triche

Shiva

Very good article thanks
shivling in makka
shiva mantra
Shiva AArti
keep Writing

Mathura Temple

great keep writing
Vrindavan Chandrodaya Temple

Shiva

Great and Nice Keep Update Nice Website
lord shiva
shivling in makka

LOANS

I opted for no credit check loans from Oyster Loans to resolve the unforeseen expenses. These loans are easy to derive and I got a chance to reclaim the financial stability, without much of any inconvenience.
no credit check loans

LOANS

I opted for no credit check loans from Oyster Loans to resolve the unforeseen expenses. These loans are easy to derive and I got a chance to reclaim the financial stability, without much of any inconvenience.
no credit check loans

Java Assignment Help I need

Java Assignment Help
I need to offer a go-ahead for such an educational post....its truly astonishing

This is an amazing type of

This is an amazing type of post.
Tea and Coffee

Thank you for topic

Thank you 11heavens i enjoyed with your topic ... Good luck

Hostings

Compare best web hosting and plans based on reviews, features and price. Get your website. Web Hosting. Our experts have compared the best web hosting providers. Read the best web hosting reviews and choose the most reliable web hosting.

loan for unemployed

The fact that you are taking so much of pain to shed some lights on the relevant subject is indeed commendable. As of now I on loans for unemployed and your ideas truly inspire me .Thanks Again- Adios for now.

Love Commands

No running back and forth from your home to the shop to your home to the shop to your home to the shop comparing colours and samples
Love Commands

iCloud Customer Service Number

iCloud Customer Service Number is all time available number that helps the customer to get rid out of iCloud related issues or queries just in the matter of times. A qualified team of expertise is there to help you at any time. Contact @ +1-888-815-6317 for help!

Games Girls

تعتبر العاب تلبيس من اشهر الانواع في هذا المجال وهي بدورها تتضمن عدة اصناف جميلة ويعشقها الكتير وخاصة البنات منها العاب تلبيس والطبخ التي تمزج بين التلبيس وكذلك الميك اب في آن واحد هذا الامر الدي يزيد من جمالها وتجعل كل من يلعبها يستمتع بذلك زد على ذلك العاب تلبيس باربي التي تعرف شعبية كبيرة لانها شخصية مشهورة ويعرفها الصغير والكبير ولهم ذكريات جميلة معها لانها اشتهرت في عالم الكارتون والان اصبح الامر كذلك في مجال الالعاب وغير هذا هناك كذلك نوع آخر مميز ايضا وهو العاب تلبيس عرائس فالجميع يحلم ان يقوم بتلبيسهما لانها تذكرهم بهذه المناسبة الجميلة الا وهي الزواج التي تعتبر اهم مرحلة في حياة الانسان وهناك انواع مغايرة لها جمهور كبير في كل انحاء العالم وهي العاب قص الشعر ليس هي فقط بل توجد ايضا العاب طبخ التي يمكن للجميع لعبها سواء كانوا اولادا او بناتا وهي الاكتر طلبا في النت ويحبها الجميع ومعها ايضا العاب باربي التي تكلمنا عليها بكل انواعها تتنوع العاب فلاش وذلك على حسب كل شخص ورغبته فهناك عدة انواع منها وهناك من هي خاصة بالبنات واخرى للاولاد وتعتبر العاب تلبيس من اكتر الالعاب انتشارا في الويب وهي محبوبة عند الجميع ولديها جمهور واسع كما انها سهلة اللعب والجميع يمكنه لعبها بسهولة تامة بدون صعوبات تذكر كما ان هناك انواع اخرى متل العاب طبخ والعاب اكشن ومكياج و سيارات الى غير ذلك فلك صنف جمهوره ومحبيه ولكن تبقى العاب بنات الاكتر انتشارا وشعبيتنا في عالم العاب الفلاش كما انها تحتوي على شخصيات معروفة وغنية عن التعريف متل باربي و سندريلا وشخصيات اخرى تركت بصمتها في هذا المجال لهذا اصبح يعتمد عليها كتيرا في صنف العاب تلبيس بنات الدي تحبه البنات بكترة خاصة في العالم العربي مما يجعل المواقع الخاصة بهذا النوع تزداد يوما بعد الاخر فذلك ليس عبثا ففي الحقيقة نوع العاب التلبيس من اجمل اصناف العاب فلاش بصفة عامة و العاب بنات بصفة خاصة اليوم لقد اتيتكم بموقع رائع انا اعجبني شخصيا وهو يحتوي على باقة من العاب بنات جديدة ومتجدد دائما ولمن لا يعرف العاب بنات فهي العاب فلاش تلعب على المتصفح بدون تحميل وتلعب مباشرة والعاب البنات هي بدورها فيها عدة اصناف وهي العاب الماكياج وفي هذا النوع يجب وضع الماكياج للبنت الموجودة في اللعبة وهناك كتير منها ويوجد كذلك العاب طبخ وهذا الصنف عنده محبين اكتر من السابق بفارق كبير وهو المميز عند الجميع سواء كانو بناتا او اولادا وايضا الصغار يلعبون فيه كتيرا وهو الاكتر انتشارا في النت ومواقعه كتيرة ويوجد صنف آخر وهو اقل منه قليلا في الشهرة وهو صنف التلبيس هذا الصنف ايضا يعشقه كتير من البنات وعدد قليل من الاولاد وكل صنف من هذه الاصناف توجد به العاب خاصة بشخصية معينة مشهورة فمتلا باربي ستجدها في جميع هذه الاصناف متلا العاب تلبيس باربي او العاب طبخ باربي او العاب ماكياج باربي وهكذا وهناك شخصيات كتيرة في هذه الالعاب وهي الاكتر شهرة طبعا عن باقي الشخصيات الغير معروفة وهذا الموقع يقدم جميع هذه الاصناف التي تندرج تحت نوع العاب بنات فمرحبا بكم جميعا .

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <css> <html> <javascript> <mysql> <php> <span> <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <sup> <sub> <dd> <del> <blockquote> <img> <q> <p> <div>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <css>, <html>, <javascript>, <mysql>, <php>, <rails>, <ruby>.

More information about formatting options

CAPTCHA
I have to wonder if you're a human spammer or a machine, or less likely someone who cares to leave his or her thoughts behind.