Skip to content

Instantly share code, notes, and snippets.

@andyferra
Created December 9, 2008 10:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andyferra/33873 to your computer and use it in GitHub Desktop.
Save andyferra/33873 to your computer and use it in GitHub Desktop.
## models/post.rb
class Post
include DataMapper::Resource
property :id, Serial
property :title, String, :nullable => false
property :body, Text
property :created_at, DateTime
property :updated_at, DateTime
end
## controllers/posts.rb
def edit(id)
@post = Post.get(id)
render
end
def update(id)
@post = Post.get(id)
if @post.update_attributes(params[:post])
redirect resource(@post), :message => {:notice => 'Your post was updated successfully'}
else
message[:error] = "Your changes could not be saved"
render :edit
end
end
## views/posts/show.html.haml
%h2 New Post
= error_messages_for @post
= form_for @post, :action => resource(@post) do
.group
.field
= text_field :title, :label => 'Title'
.group
.field
= text_area :body, :label => 'Body', :rows => 20
.group
.field
= submit 'Save Post'
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
# <html lang='en_us' xml:lang='en_us' xmlns='http://www.w3.org/1999/xhtml'>
# <head>
# <title>Monospaced Media</title>
# <meta content='text/html; charset=utf-8' http-equiv='content-type' />
# <link type="text/css" charset="utf-8" href="/stylesheets/screen.css?120903502778" rel="Stylesheet" media="screen" />
# <script type="text/javascript" src="/javascripts/jquery.js?120903502784"></script><script type="text/javascript" src="/javascripts/application.js?120903502759"></script>
# </head>
#
# <body id='posts_edit'>
# <div id="message"></div>
# <h2>New Post</h2>
#
# <form method="post" action="/posts/1"><input type="hidden" value="put" name="_method"/><div class='group'>
# <div class='field'>
# <label for="post_title">Title</label><input type="text" class="text" value="Foo" name="post[title]" id="post_title"/>
# </div>
# </div>
#
# <div class='group'>
# <div class='field'>
# <label for="post_body">Body</label><textarea name="post[body]" rows="20" id="post_body">Foo</textarea>
# </div>
# </div>
# <div class='group'>
# <div class='field'>
# <input type="submit" value="Save Post" name="submit"/>
#
# </div>
# </div>
# </form>
# </body>
# </html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment