diff --git a/app/assets/javascripts/message.js.coffee b/app/assets/javascripts/message.js.coffee new file mode 100644 index 0000000..7615679 --- /dev/null +++ b/app/assets/javascripts/message.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ diff --git a/app/assets/stylesheets/message.css.scss b/app/assets/stylesheets/message.css.scss new file mode 100644 index 0000000..a1f3a3e --- /dev/null +++ b/app/assets/stylesheets/message.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the message controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb new file mode 100644 index 0000000..da3d9d8 --- /dev/null +++ b/app/controllers/messages_controller.rb @@ -0,0 +1,37 @@ +class MessagesController < ApplicationController + +def create + @recipient = User.find(params[:id]) + @message = Message.new() + @message.content = params[:content] + @message.user = current_user + @message.save + mes_recipient = MessageRecipient.new() + mes_recipient.message_id = @message.id + mes_recipient.user_id = 1 + mes_recipient.save +end + +def show + @message = Message.find(params[:id]) +end + +def index + @messages = current_user.messages + current_user.recieved_messages +end + +def update + @message = Message.find(params[:id]) + + respond_to do |format| + if @message.update_attributes(params[:message]) + format.html { redirect_to @message, notice: 'message was successfully updated.' } + format.json { head :ok } + else + format.html { render action: "edit" } + format.json { render json: @message.errors, status: :unprocessable_entity } + end + end + end + +end diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb index a2871be..7b7d847 100644 --- a/app/controllers/uploads_controller.rb +++ b/app/controllers/uploads_controller.rb @@ -39,7 +39,7 @@ def edit # POST /files.json def create @file = Upload.new(params[:upload]) - @file.user = current_user + @file.user = current_user respond_to do |format| if @file.save format.html { redirect_to(:uploads, :notice => 'file was successfully created.') } diff --git a/app/helpers/message_helper.rb b/app/helpers/message_helper.rb new file mode 100644 index 0000000..afbbb4b --- /dev/null +++ b/app/helpers/message_helper.rb @@ -0,0 +1,2 @@ +module MessageHelper +end diff --git a/app/models/message.rb b/app/models/message.rb new file mode 100644 index 0000000..64d0b2a --- /dev/null +++ b/app/models/message.rb @@ -0,0 +1,9 @@ +class Message < ActiveRecord::Base +#Relations + belongs_to :user + has_many :message_recipients + has_many :recipients, :through => :message_recipients, :source => :user +#Validations + validate :user_id, :presence => true + +end diff --git a/app/models/message_recipient.rb b/app/models/message_recipient.rb new file mode 100644 index 0000000..9f175b8 --- /dev/null +++ b/app/models/message_recipient.rb @@ -0,0 +1,10 @@ +class MessageRecipient < ActiveRecord::Base +#Relations + belongs_to :message + belongs_to :user + +#Validations + validate :user_id, :presence => true + validate :message_id , :presence => true + +end diff --git a/app/models/post.rb.save b/app/models/post.rb.save deleted file mode 100644 index 847305f..0000000 --- a/app/models/post.rb.save +++ /dev/null @@ -1,8 +0,0 @@ -lass Post < ActiveRecord::Base - attr_accesible :content - belongs_to :user - validates :content, :presence => true, :length => { :maximum => 2000 } - validates :user_id, :presence => true - default_scope :order => 'posts.created_at DESC' - -end diff --git a/app/models/user.rb b/app/models/user.rb index 12d4668..5816475 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -4,12 +4,13 @@ class User < ActiveRecord::Base #Relations has_many :uploads - has_many :users_upload has_many :saved_uploads, :through => :users_upload, :source => :upload -has_many :posts, :dependent => :destroy -# has_many :uploads, :through => :users_uploads - + has_many :posts, :dependent => :destroy + + has_many :messages + has_many :message_recipient + has_many :recieved_messages, :through => :message_recipient, :source => :message diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index e2bed6c..0369619 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -1,16 +1,19 @@ -
- <%= image_tag("logo.png", :alt => "Ruby School", :class => "round") %> +
+ <%= image_tag("logo.png", :alt => "Ruby School", :class => "round") %> + +
diff --git a/app/views/layouts/_style_and_meta.html.erb b/app/views/layouts/_style_and_meta.html.erb new file mode 100644 index 0000000..cf17194 --- /dev/null +++ b/app/views/layouts/_style_and_meta.html.erb @@ -0,0 +1,16 @@ + + Social Network | <%= @title %> + + + <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> + <%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> + + <%= stylesheet_link_tag 'custom', :media => 'screen' %> + + + <%= javascript_include_tag "application" %> + <%= csrf_meta_tags %> + + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a8bb70c..6def160 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,43 +1,13 @@ - - Social Network | <%= @title %> - - - <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> - <%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> - - <%= stylesheet_link_tag 'custom', :media => 'screen' %> + <%= render 'layouts/style_and_meta' %> - <%= javascript_include_tag "application" %> - <%= csrf_meta_tags %> -
-
- <%= image_tag("logo.png", :alt => "Ruby School", :class => "round") %> - -
- + <%= render 'layouts/header' %> +

<%= notice %>

<%= alert %>

@@ -47,11 +17,5 @@ <%= yield %>
- -
- -
diff --git a/app/views/layouts/application.html.erb~ b/app/views/layouts/application.html.erb~ index 1cf4571..9f64efe 100644 --- a/app/views/layouts/application.html.erb~ +++ b/app/views/layouts/application.html.erb~ @@ -1,43 +1,13 @@ - - Social Network | <%= @title %> - - - <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> - <%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> - - <%= stylesheet_link_tag 'custom', :media => 'screen' %> + <%= render 'layouts/head' %> - <%= javascript_include_tag "application" %> - <%= csrf_meta_tags %> -
-
- <%= image_tag("logo.png", :alt => "Ruby School", :class => "round") %> - -
- + <%= render 'layouts/header' %> +

<%= notice %>

<%= alert %>

@@ -47,11 +17,5 @@ <%= yield %>
- -
- -
diff --git a/app/views/messages/create.html.erb b/app/views/messages/create.html.erb new file mode 100644 index 0000000..565937a --- /dev/null +++ b/app/views/messages/create.html.erb @@ -0,0 +1,12 @@ +

Writing message to <%= @recipient.username %>

+ +<%= form_for @message do |f| %> +
+ <%= f.label :content %>
+ <%= f.text_field :content %> +
+
+ <%= f.submit "Submit" %> +
+<% end %> +<%= link_to 'Back', @recipient %> diff --git a/app/views/messages/index.html.erb b/app/views/messages/index.html.erb new file mode 100644 index 0000000..91d1e18 --- /dev/null +++ b/app/views/messages/index.html.erb @@ -0,0 +1,7 @@ +<% @messages.each do |message|%> +
+ <%= message.content %> + <%= message.user.username %> +
+ +<% end %> diff --git a/app/views/messages/show.html.erb b/app/views/messages/show.html.erb new file mode 100644 index 0000000..1760d17 --- /dev/null +++ b/app/views/messages/show.html.erb @@ -0,0 +1,11 @@ +

+ From: + <%= @message.user.username %> +

+ +

+ Message: + <%= @message.content %> +

+ +<%= link_to 'Back', :root %> diff --git a/app/views/pages/home.html.erb b/app/views/pages/home.html.erb index 5dc79e9..3858b7b 100644 --- a/app/views/pages/home.html.erb +++ b/app/views/pages/home.html.erb @@ -14,5 +14,3 @@ -

Social Network

- <%= link_to 'New User', new_user_path %> diff --git a/app/views/posts/_post.html.erb b/app/views/posts/_post.html.erb index 73116db..f491689 100644 --- a/app/views/posts/_post.html.erb +++ b/app/views/posts/_post.html.erb @@ -8,9 +8,7 @@ <% user = post.user rescue User.find(post.user_id) %> <% if current_user?(user) %> -<%= link_to "delete", post, :method => :delete, -:confirm => "You sure?", -:title => post.content %> +<%= link_to "delete", post, :method => :delete,:confirm => "You sure?",:title => post.content %> <% end %> diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index e733f00..d2eb9d4 100644 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -15,8 +15,7 @@ <%= user.email %> <%= link_to 'Show', user %> <%= link_to 'Edit', edit_user_path(user) %> - <%= link_to 'Destroy', user, confirm: 'Are you sure?', method: :delete %> - + <% end %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index e747589..8ebd070 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -1,12 +1,12 @@
diff --git a/db/migrate/20120305154705_create_messages.rb b/db/migrate/20120305154705_create_messages.rb new file mode 100644 index 0000000..3e8d9d7 --- /dev/null +++ b/db/migrate/20120305154705_create_messages.rb @@ -0,0 +1,10 @@ +class CreateMessages < ActiveRecord::Migration + def change + create_table :messages do |t| + t.integer :user_id + t.text :content + + t.timestamps + end + end +end diff --git a/db/migrate/20120305154753_create_messages_recipients.rb b/db/migrate/20120305154753_create_messages_recipients.rb new file mode 100644 index 0000000..eb94b73 --- /dev/null +++ b/db/migrate/20120305154753_create_messages_recipients.rb @@ -0,0 +1,10 @@ +class CreateMessagesRecipients < ActiveRecord::Migration + def change + create_table :message_recipients do |t| + t.integer :user_id + t.integer :message_id + + t.timestamps + end + end +end