Get updates

ListFinity

Scott Back to Rails

It’s been a long time since I’ve worked on a Rails project, but it feels good to finally get back to Ruby on Rails.

Continue Reading…

Scott Easing into Rails Deployment with Mongrel

Like the good [Rails] book says, Apache plus FastCGI is the way to go. Or is it?

It’s been a while since I’ve been free to work on ListFinity, just recently I was able to start addressing the question of deployment: How can I get my Rails application running on a local server, in “stable” production mode while I tinker away separately on the development version?

Of course I had to start by following my Rails book’s advice.

The much-touted solution of Apache plus FastCGI required, well, getting Apache running. Okay, done. Then CGI- check. Then Rails with CGI on Apache… wow we’re losing altitude quickly.

Continue Reading…

Scott Q&A: How to use plain JavaScript in RJS templates

What’s all the fuss over RJS templates for Rails? JavaScript is not, in my opinion, the dirty/scary/tedious or otherwise lame language some people seem to think it is. I actually enjoy writing JavaScript objects, and currently the codebase of my hierarchical list manager app contains about as much JavaScript as Ruby code.

Despite my JavaScript predilection (or because of it), I am happy to work with RJS templates. Why? Because they make working with JavaScript (and client-side capabilities JavaScript offers) in Rails a whole lot easier. A lot of what makes Rails really fun is stuff like the easy integration of Ajax and JavaScript for the UI, such as Scriptaculous.

RJS templates make it a snap to respond to an Ajax request with much more than just an update for a single element, through a number of wrapper functions that generate JavaScript for you. Yet sometimes you’ll still want to interact with your own custom JavaScript functions and objects.

Question: How can plain JavaScript be used inside RJS templates?

Continue Reading…

Scott Q&A: How to include a Rails text field without a variable?

The form helpers in Rails are great. But what do you do when you want to collect some data that’s not tied directly to a variable in your model?

Continue Reading…

Scott Passing :id When Rendering a Component

For the time being I’ve decided to forgo acts_as_tree and roll my own solution for nested list display. At this point I don’t think I really need to parse and display the entire tree in one fell swoop, it seems more natural to display the top level and retrieve children of a node when the user clicks and expands the node.

Since my “list” action has been doing fine to display list items, I quickly made it context-aware and used it as a component to render the children of a node when an item is expanded. Consulting my rails book I tried to render like this:

Continue Reading…

Scott Displaying a hierarchy and acts_as_tree

What’s brewing over at ListFinity, home of infinite lists?

Well, supposedly right now I’m working out various means of constructing and manipulating “infinitely nestable” lists, as in an object hierarchy (aka tree view) of arbitrary depth.

That’s all well and good, but not as straightforward to code as the display of a single unordered list. I figured that such a hierarchy would be a good candidate for recursion, and in this case that didn’t sound like too big a chore to write… except when I started to imagine that each loop back to the recursive method would want to pass on the list data for the next loop to walk through another level, etc. This triggered a flash of nightmares where a sufficiently large or deep list (nevermind one mangled to include circular references) spurs the recursion on to eat memory like a mosquito with its proboscis stuck in the jugular.

Continue Reading…

Scott Q&A: How to Set a Form’s ID in Rails?

HTML is not hard. Anyone who can program, in any language, should be able to write HTML with little or no training. Yet there are reasons why the HTML helper functions in Rails can be handy. Chief among them is the easy and fairly clean way you can incorporate variables and other constructs; after all, the idea here is to have an app generate some of the code rather than having to write every piece by hand.

I was happily marching to the tune of form_tag() when I decided that I wanted a little JavaScript function to interact with the form’s contents. Great, except the HTML form code being generated by that helper function wasn’t coming with its own id attribute.

I could probably have the JavaScript function refer to this particular form by indexing an array, but then it could break if I ever changed the layout of the page to include another form. Hardly ideal.

Question: How does one tell Rails what the form’s id should be when creating the form with the helper function (or the Ajax form_remote_tag)?

Continue Reading…

Scott The Scriptaculous afterFinish problem

On the heels of working out the proper syntax to use when returning JavaScript to execute after an Ajax request, I ran into trouble with a Scriptaculous effect callback.

Continue Reading…

Scott Q&A: How Rails Returns JavaScript to Execute on Ajax Request?

On the road to a better to-do list application, I need to start with a solid base and advance one step at a time. That base includes simple ajax functionality so list items can be manipulated without a full page reload.

Question: When the user clicks an Ajax link to destroy a list item, how do I have Rails return JavaScript code to be executed which will hide that item?

Continue Reading…

Scott ListFinity: The Gathering

…really it’s not so much a gathering, just me typing away and maybe the occasional contribution from my cat… ach, great, that’s really going to draw in the reader…

Thus begins my first real Ruby on Rails project.

Continue Reading…

3DM Design is where Scott Drake publishes thoughts on programming web applications in JavaScript and Ruby.