Problem with login example in Agile Web Development with Ruby 2nd Edition

Discussion in 'Ruby' started by chhenning, Jan 16, 2007.

  1. chhenning

    chhenning Guest

    Hi all, this is the first time I'm posting to this list or all Ruby on
    Rails lists, at all. If I'm wrong here please let me know where the
    best place is to put my question.

    I'm doing the authentication example in the new Agile Development with
    Rails book. For whatever reason the user login page doesn't work. The
    login.rhtml looks like this:

    <!--
    ! Excerpted from "Agile Web Development with Rails, 2nd Ed."
    ! We make no guarantees that this code is fit for any purpose.
    ! Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book
    information.
    -->
    <div class="depot-form">
    <fieldset>
    <legend>Please Log In</legend>

    <% form_tag do %>
    <p>
    <label for="name">Name:</label>
    <%= text_field_tag :name, params[:name] %>
    </p>

    <p>
    <label for="password">Password:</label>
    <%= password_field_tag :password, params[:password] %>
    </p>

    <p>
    <%= submit_tag "Login" %>
    </p>
    <% end %>
    </fieldset>
    </div>

    But when trying to display this site there aren't any input fields.
    Seems to me the "form_tag do" does produce any html code. My Firefox
    browser simply shows the following page source.

    <html>
    <head>
    <title>Admin: login</title>
    <link href="/stylesheets/scaffold.css?1168898602" media="screen"
    rel="Stylesheet" type="text/css" />
    </head>
    <body>

    <p style="color: green"></p>

    <!--
    ! Excerpted from "Agile Web Development with Rails, 2nd Ed."
    ! We make no guarantees that this code is fit for any purpose.
    ! Visit http://www.pragmaticprogrammer.com/titles/rails2 for more book
    information.
    -->
    <div class="depot-form">
    <fieldset>
    <legend>Please Log In</legend>


    </fieldset>
    </div>

    </body>
    </html>

    Does anybody know what might be wrong with my application? Any hint is
    very welcome. I'm in my first steps of using Ruby on Rails.

    Thanks ahead,
    Christian
     
    chhenning, Jan 16, 2007
    #1
    1. Advertisements

  2. chhenning

    Jan Svitok Guest

    There is a google group specifically for Rails, so you might get
    better help there.
    There is a new way to do this s seen here:
    http://www.loudthinking.com/arc/000601.html

    and old way seen here:
    http://api.rubyonrails.com/classes/ActionView/Helpers/FormTagHelper.html#M000497

    My action pack 1.12.5 seems to support just the old one.
    api.rubyonrails.com knows nothing about the new one. Maybe this works
    in development version (would be 1.2) only

    So either change your script to use the old form, or install egderails
    (I won't help you with this, I guess it involves getting rails
    directly from SVN)

    J.
     
    Jan Svitok, Jan 16, 2007
    #2
    1. Advertisements

  3. chhenning

    Dave Thomas Guest


    Did you install the version of Rails cited inside the book's front
    cover, and run rake rails:update?


    Dave
     
    Dave Thomas, Jan 16, 2007
    #3
  4. chhenning

    gmarik Guest

    Didn't you forget = in the construction above? So it should look
    like:
    <%= form_tag do %>
    ....
     
    gmarik, Jan 17, 2007
    #4
  5. chhenning

    Jan Svitok Guest

    No. See DHH's blog. You either use = or do...end (if you have 1.2) and
    = without block in 1.0. See
    lib/actionpack/actionview/tag_form_helper.rb
     
    Jan Svitok, Jan 17, 2007
    #5
  6. chhenning

    Dave Thomas Guest


    No, that form is what should be used in 1.2. It works as long as
    you're running a 1.2 RC, or the code .zip file provided with the book.


    Dave
     
    Dave Thomas, Jan 17, 2007
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.