Skip to content

Commit c01fa31

Browse files
committed
messages work.
1 parent 4d37262 commit c01fa31

20 files changed

Lines changed: 674 additions & 4 deletions

app/controllers/dashboard_controller.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@ class DashboardController < ApplicationController
22
def index
33
end
44

5+
def inbox
6+
@messages = current_user.inverse_messages
7+
end
8+
59
end
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class MessagesController < ApplicationController
2+
def index
3+
@messages = Message.all
4+
end
5+
6+
def show
7+
@message = Message.find(params[:id])
8+
end
9+
10+
def new
11+
@message = Message.new
12+
end
13+
14+
def edit
15+
@message = Message.find(params[:id])
16+
end
17+
18+
def create
19+
@message = Message.new(params[:message])
20+
@message.sender = current_user
21+
22+
if @message.save
23+
flash[:notice] = 'Message was successfully created.'
24+
redirect_to(@message)
25+
else
26+
render :action => "new"
27+
end
28+
end
29+
30+
def update
31+
@message = Message.find(params[:id])
32+
33+
if @message.update_attributes(params[:message])
34+
flash[:notice] = 'Message was successfully updated.'
35+
redirect_to(@message)
36+
else
37+
render :action => "edit"
38+
end
39+
end
40+
41+
def destroy
42+
@message = Message.find(params[:id])
43+
@message.destroy
44+
45+
redirect_to(messages_url)
46+
end
47+
end

app/helpers/messages_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module MessagesHelper
2+
end

app/models/message.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class Message < ActiveRecord::Base
2+
belongs_to :sender, :class_name => "User"
3+
belongs_to :recipient, :class_name => "User"
4+
end

app/models/user.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,10 @@ class User < ActiveRecord::Base
33

44
has_many :watchings
55
has_many :watches, :through => :watchings
6+
7+
has_many :messages
8+
has_many :recipients, :through => :messages
9+
10+
has_many :inverse_messages, :class_name => "Message", :foreign_key => "recipient_id"
11+
has_many :inverse_recipients, :through => :inverse_messages, :source => :users
612
end

app/views/dashboard/inbox.html.erb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<ul>
2+
<% for message in @messages %>
3+
<li><%= message.sender.username %> says: <%= message.text %></li>
4+
<% end %>
5+
</ul>

app/views/dashboard/index.html.erb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
<h1>Dashboard#index</h1>
2-
<p>Find me in app/views/dashboard/index.html.erb</p>
1+
<%= link_to "Check messages", inbox_path %>

app/views/messages/edit.html.erb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<h1>Editing message</h1>
2+
3+
<% form_for(@message) do |f| %>
4+
<%= f.error_messages %>
5+
6+
<p>
7+
<%= f.label :sender_id %><br />
8+
<%= f.text_field :sender_id %>
9+
</p>
10+
<p>
11+
<%= f.label :recipient_id %><br />
12+
<%= f.text_field :recipient_id %>
13+
</p>
14+
<p>
15+
<%= f.label :text %><br />
16+
<%= f.text_field :text %>
17+
</p>
18+
<p>
19+
<%= f.submit 'Update' %>
20+
</p>
21+
<% end %>
22+
23+
<%= link_to 'Show', @message %> |
24+
<%= link_to 'Back', messages_path %>

app/views/messages/index.html.erb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<h1>Listing messages</h1>
2+
3+
<table>
4+
<tr>
5+
<th>Sender</th>
6+
<th>Recipient</th>
7+
<th>Text</th>
8+
</tr>
9+
10+
<% @messages.each do |message| %>
11+
<tr>
12+
<td><%=h message.sender_id %></td>
13+
<td><%=h message.recipient_id %></td>
14+
<td><%=h message.text %></td>
15+
<td><%= link_to 'Show', message %></td>
16+
<td><%= link_to 'Edit', edit_message_path(message) %></td>
17+
<td><%= link_to 'Destroy', message, :confirm => 'Are you sure?', :method => :delete %></td>
18+
</tr>
19+
<% end %>
20+
</table>
21+
22+
<br />
23+
24+
<%= link_to 'New message', new_message_path %>

app/views/messages/new.html.erb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<h1>New message</h1>
2+
3+
<% form_for(@message) do |f| %>
4+
<%= f.error_messages %>
5+
6+
<p>
7+
<%= f.label :recipient_id %><br />
8+
<%= f.collection_select(:recipient_id, User.find(:all, :order => :username) - [current_user], :id, :username) %>
9+
</p>
10+
<p>
11+
<%= f.label :text %><br />
12+
<%= f.text_area :text %>
13+
</p>
14+
<p>
15+
<%= f.submit 'Create' %>
16+
</p>
17+
<% end %>
18+
19+
<%= link_to 'Back', messages_path %>

0 commit comments

Comments
 (0)