Tuesday, June 23, 2009

Workshop 5: Part A: Viewing the action

  1. Create the Rails application framework in the projects folder: C:\InstantRails\...\projects\>rails animals

  2. Complete
  3. Running the application on localhost:3000 using the WeBrick ruby server (or Mongrel as alternative) and access via Web browser at http://localhost:3000/

  4. Create the controller to make the application do an action. This is under the controller-action/model-view structure. Stop the WEBrick server each time you edit Ruby classes and then re-start or refresh the views you are testing. Use the Ruby command below: >ruby script/generate controller Mammal The mammal_controller.rb contains just a bare class description: class MammalController< ApplicationController end and the ApplicationController class inherits from ActionController::Base class in the ActionController module under Rails.

  5. Complete
  6. Test the controller by starting the WEBrick server and navaigatibng the browser to http://localhost:3000/mammal Note how the controller name is appended to the end of the URL and that no action resulted because there are no controller methods.

  7. I get the following:
    Routing Error No route matches "/mammals" with {:method=>:get}
    I think this is simply because I coulnt follow instructions and typed /mammals rather than /mammal.
  8. Create an action by editing and saving the mammal_controller.rb class in projects\animals\app\controllers using your text editor to add the method below: class MammalController< ApplicationController def breathe end end

  9. Complete
  10. Start the WEBrick server and browse at http://localhost:3000/mammals/breathe where you will get a “missing template” message since it is missing a view for the breathe method. Rails is trying to connect the breathe method action of the mammal controller to a view, by using the action’s name – breathe. This view template is created as breathe.rhtml and stored in the \projects\animals\views\mammal directory.

  11. Create and save a view in that directory by using a text editor to create a view called breathe.rhtml <_html> <_head> <_title>Breathe Easy <_body>Inhale and Exhale Restart the WEBrick serve r and browse again at http://localhost:3000/mammals/breathe

  12. Browsed to ../mammal/ and got the following message
    Unknown action No action responded to index. Actions: breathe
    So added the action /mammal/breathe and got the expected result.
  13. Try Ruby code and HTML in the action view by using the <%....%> wrapper around the inserted Ruby code. Here are some snippets to try from workshop 4:
    5 + 6 =<%= 5 + 6 %>

    =<% 4.times do %> Inhale Exhale
    <%end%>
    Time is <%=Time.now %>
    The output of this little exercise is

    NOTE: in practise you normally perform calculations in the action (method) and pass the results to the view.

No comments:

Post a Comment