Philosophy, technology, and the future of work

I was getting this error with Rails 2.2 when using ActionMailer. NoMethodError (undefined method `finder' for #ActionView::Base:0x34146fc) It stems from a line in engines/lib/engines/rails_extensions/action_mailer.rb This is some problem between Rails 2.2 and Engines. Reinstalling engines didn't seem to help. Simply put, you need to go here and apply this patch: http://github.com/lazyatom/engines/commit/499ce3b0480d8fa9375203f5efcadb8cf6ea9efe This took me hours to figure out. I don't know why there isn't any more help on this problem.  read more >

After slogging through connecting Rails and Sugar via SOAP, I was tired and frustrated. The API is slow, and doing anything meaningful took a long time (ok, it took 30 seconds, but that seems slow to me; aren't computers supposed to be fast?!). So, I came up with an alternative approach. I know that Active Record (or whatever it's called) in Rails is really just a fancy wrapper for the database. So, I created a second database connection, directly to the Sugar database! You just have to setup new models and controllers in Rails. But, that's not too hard. See this solution... read more >

I have long wanted to make sure my CRM system (SugarCRM) and my project management system synchonized certain data, mainly company names. I hate having to sync stuff like that manually. So, I've been working on integrating the data using a SOAP client on the Rails side. It took all day to get this working. I don't know why this took forever to find out, or why there aren't many good references on the Web. (Maybe I'm just dense!) I had to patch together a bunch of code, re-code some PHP examples, and do quite a bit of experimenting, to get this all working. Here is a list of some of the sites...... read more >

This is another one that should have been obvious. But, I was getting it wrong. Maybe it had something to do with upgrading to Rails 1.2.6. Anyway, I was getting an error with a custom action. I was sending a form to "projects/do_something". But, I kept getting the error of "Can't find project with ID=do_something". This was happening because Rails thought it was supposed to be looking in the route for the show action. But, checking the routes file, I could see that I had defined my custom route. What, what was up? It turns out, the custom route has to come before the standard "map.resources...... read more >

I don't know why this took a while to figure out, but it did. If you are using the stock Rails in_place_editor_field, you know it looks like this in the controller: in_place_edit_for :user, :name And like this in the view: <%= in_place_editor_field :user, :name %> This works fine so long as you're rendering from the users controller. But, what if this view is a partial inside a different controller's view? In that case, what gets called is not "/users/set_user_name" but "/othercontroller/set_user_name". And, of course, it fails because there is no method (dynamic or otherwise) like that...... read more >

It took me a little while, but I finally got this working. You'll need the iCalendar plugin. require 'icalendar'  def view_ical   request = Net::HTTP::Get.new('/calendars/calendar.ics')  response = Net::HTTP.start('webdav.site.com') {|http|  request.basic_auth 'username', 'password'  response = http.request(request)  }  calendar_text = response.body calendars = Icalendar.parse(calendar_text)  calendar = calendars.first end  read more >

This one is harder than it seems. But, I figured out a way. The trick and breakthrough came from Teflon Ted. With a regular form, you could do this in your select statement: :onChange=>"this.form.submit();" This won't work with a remote form, because the submission is not handled with the submit method but rather within the JavaScript callback in onsubmit. So, with a remote form, you have to change it to this: :onChange=>"this.form.onsubmit();" So, here is my code. <%- remote_form_for :user, user, :url=>{:action=>'update_remote', :id=>user.id}, :html=>{:id=>'form_'+user.id.to_s}, ...... read more >

It seems like it would take a lot of work to get the in_place_editor to work in a partial on a collection, but it does. (It took me a lot of time to figure this out, but maybe I'm just more than average dense.) The best post to-date on this is at we eat bricks. Just add the usual in the controller (user_controller.rb): in_place_edit_for :user, :name And, of course, the method: def edit @users = User.find(:all) end Then, in the main view (edit.rhtml): <%= render :partial=>'user', :collection=>@users %> Then, in the partial (_users.rhtml): <%= in_place_editor_field :model, :column... read more >

Nested resources in Ruby on Rails are sort of neat, but they are a pain to implement. What's more, I have to ask myself, why bother? If a resource has a unique identifier id, then why would you need to call its parent resource to call it? The unique identifier is enough. And what resource doesn't have a unique id these days?  read more >

Geoffrey Grosenbach's Ruby on Rails plugin calendar_helper is simple and easy to use. Maybe I'm just picky, but one part of it just wasn't working right for me. Originally, it looks like this on line 96: cal << %(<caption class="#{options[:month_name_class]}"></caption><thead><tr><th colspan="7">#{Date::MONTHNAMES[options[:month]]}</th></tr><tr class="#{options[:day_name_class]}">) It doesn't really make sense for the month name to be in a TH tag and the caption to be empty. So, I put the month name in the caption and eliminated the extra table row. In the end I changed it to this: cal...... read more >