I have a route that looks like the following:
map.newsletter '/newsletter', :controller => "newsletter" , :action => "newsletter_signup"
There is also a NewsletterController and a Newsletter model. The thing is, I wanted to keep my controller down to one simple method, newsletter_signup. In there I simply check if the request is of type post or of type get. If it's a get, I just give back a static html view saying thanks for signing up to our newsletter. If it's a post, I want to create a new newsletter model and sign the user up. Ideally I'd like to embed this form into my home page, which doesn't call the newsletter controller. I didn't think that URLs such as http://example/newsletter/1 or http://example/newsletter/new made much sense, hence the way I setup the route above.. only http://example/newsletter works.
How would I go about creating this form? It accepts one field, just a textfield that's the user's email. Once they hit submit, it should POST to the newsletter controller and the newsletter_signup method. Since this form is going to be in the footer of every page on my app, do I need to do something like @newsletter = Newsletter.new in my default controller/action?