Skip to content

Instantly share code, notes, and snippets.

@Katzy
Last active August 29, 2015 14:05
Show Gist options
  • Save Katzy/8cb6413037cf4e387ada to your computer and use it in GitHub Desktop.
Save Katzy/8cb6413037cf4e387ada to your computer and use it in GitHub Desktop.
Wall.rb
class Wall
include DataMapper::Resource
property :id, Serial
property :created_by, String
property :title, String
property :description, Text
property :likes, Integer
property :created_at, DateTime
end
class Message
include DataMapper::Resource
property :id, Serial
property :description, Text
property :likes, Integer
property :created_at, DateTime
belongs_to :Wall
end
DataMapper.finalize
DataMapper.auto_upgrade!
get "/walls/:id/" do
@wall = Wall.get(params[:id])
@messages = Message.all
erb :description
end
get "/walls/:id/new_message" do
@wall = Wall.get(params[:id])
@message = Message.new
erb :new_message
end
post "/walls/:id/message" do
@wall = Wall.get(params[:id])
message_attributes = params["message"]
@message = Message.create(message_attributes)
if @message.saved?
redirect "/walls/#{params[:id]}/"
else
erb :new_message
end
end
put "/walls/:id/message/likes" do
@message = Message.get(params[:id])
if @message["likes"] += 1
else @wall["likes"] = 1
end
@message.save
redirect "/"
end
******************
NEW_MESSAGE ERB
<h3>Add a Message to this Wall</h3>
<form method="POST" action="/walls/<%= @wall.id %>/message">
</label><br />
<label>Message:
<textarea name="message[description]"><%= @message.description %></textarea>
</label><br />
<input type="hidden" name="message[likes]" value="<%= 0 %>" />
<button>Create this Message!</button>
</form>
*******************
DESCRIPTION ERB
<h2>Wall Details</h2>
<ul>
<button><a href="/">Return to Main Wall</a></button>
<p>
<label>Title: <%= @wall.title %>
</label><br /><br />
<label>Description: <%= @wall.description %>
</label><br /><br />
<label>Author: <%= @wall.created_by %>
</label><br /><br />
<button><a href="/walls/<%= @wall.id %>/new_message">Write a Message on This Wall</a></button>
<ul>
<% @messages.each do |message| %>
<li>
<h2><p>Description: <%= message.description %></p></h2>
<p><%= message.likes.to_s %> likes</p>
</li>
<% end %>
</ul>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment