The login_generator script seems to be broken with rails > 2.0.1, at least at login_generator gem version 1.2.2. It’s due to the fact that the login_generator script uses the older “.rhtml” extension, rather than the newer “.html.erb”, so you’ll get errors like this if you try and script/generate login:
No such file or directory - /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml
You just have to edit the login_generator gem script, replacing the .rhtml’s to .html.erb’s, and it should work fine. Some would recommend doing it in a local copy rather than directly in your local gem repository, but I haven’t run into any issues so far. Here’s the modified script:
class LoginGenerator < Rails::Generator::NamedBase def manifest record do |m| # Login module, controller class, functional test, and helper. m.template "login_system.rb", "lib/login_system.rb" m.template "controller.rb", File.join("app/controllers", class_path, "#{file_name}_controller.rb") m.template "controller_test.rb", File.join("test/functional", class_path, "#{file_name}_controller_test.rb") m.template "helper.rb", File.join("app/helpers", class_path, "#{file_name}_helper.rb") # Model class, unit test, fixtures, and example schema. m.template "user.rb", "app/models/user.rb" m.template "user_test.rb", "test/unit/user_test.rb" m.template "users.yml", "test/fixtures/users.yml" # Layout and stylesheet. m.template "scaffold:layout.html.erb", "app/views/layouts/scaffold.html.erb" m.template "scaffold:style.css", "public/stylesheets/scaffold.css" # Views. m.directory File.join("app/views", class_path, file_name) login_views.each do |action| m.template "view_#{action}.rhtml", File.join("app/views", class_path, file_name, "#{action}.html.erb") end m.template "README", "README_LOGIN" end end attr_accessor :controller_class_name def login_views %w(welcome login logout signup) end end
cheers