作讯息:设定一览

作讯息

Coffeecup header2

0 : 这个章的目的

 看看「作讯息」的设定一览吧


1 : 设定一览

作讯息」里设定
  • 作「messages」资料库
  • 「七个网页」的设定
  • 资料操作的设定
  • 网页显示的设定
这个四个內容。


在这里看看设定的內容吧。

  • 作「messages」资料库

  • 首先在terminal上,作messages资料库的设定文件。

     terminal
     使用Windows的话,用「命令提示符」。
    1 rails g model message

    编辑,在这个命令作好的「db > migrate」文件及里的「日子_create_messages.rb」

     日子_create_messages.rb
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 10 11 12 class CreateMessages < ActiveRecord::Migration def change create_table :messages do |t| t.text :content t.integer :user_id t.integer :receiver t.timestamps null: false end end end

    这样设定好了下面一样的资料库。

    messages
    id content user_id receiver created_at updated_at
    192 你好 91 20 2016-03-02 16:13:52 2016-03-02 16:13:52

    最后适用资料库的设定。

     terminal
     使用Windows的话,用「命令提示符」。
    1 rake db:migrate

    这样子作好下面图像一样的资料库了。 Sequel pro messages database
    资料库做好了,接着为了作网页做
    • 「七个网页」的设定
    • 资料操作的设定
    • 网页显示的设定
    这个三个设定

     首先从「七个网页」的设定开始做。

  • 「七个网页」的设定

  • 「七个网页」的设定要在,route.rb里面设定。

     route.rb
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 10 ... 63 Rails.application.routes.draw do devise_for :users resources :welcome, :only => [:index] root "welcome#index" resources :users, :only => [:show, :index, :edit, :update] resources :messages, :only => [:create] # The priority is based upon order of creation: first created -> highest priority. # See how all your routes lay out with "rake routes". # 省略 end

    这样设定好了,messages」资料库的网页显示只用「create的设定。

  • 资料操作的设定

  • 资料操作的设定在
    • messages_controller.rb
    • users_controller.rb
    这个两个文件设定內容。

     messages_controller.rb
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 10 class MessagesController < ApplicationController before_action :authenticate_user!, :only => [:create] def create @message = Message.create(params.require(:message).permit(:user_id, :receiver, :content).merge(:user_id => current_user.id)) redirect_to :back end end

     users_controller.rb(追加第7、8行)
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 class UsersController < ApplicationController before_action :authenticate_user!, :only => [:show, :index, :edit, :update] def show @user = User.find(params[:id]) @messages = Message.where(:receiver => @user.id) @message = Message.new end def index @users = User.all end def edit @user = User.find(params[:id]) if @user.id == current_user.id else redirect_to "/" flash[:alert] = "无效的会员" end end def update @user = User.find(params[:id]) if @user.id == current_user.id @user.update(params.require(:user).permit(:first_name, :family_name, :self_introduction, :age)) redirect_to "/users/#{@user.id}/edit" flash[:notice] = "编辑好了!" else redirect_to "/" flash[:alert] = "无效的会员" end end end

    这样做好了在users」资料的「show」网页新增「messages」资料的设定了。

  • 显示网页的设定

  • 最后在app > views > users > show.html.erb里面设定「users」资料库的「show」网页的显示。

     show.html.erb(第5〜19行)
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <h1>会员资料</h1> <hr> <p>名字:<%= @user.family_name %><%= @user.first_name %>(<%= @user.age %>岁)</p> <p>自我介绍:<%= @user.self_introduction %></p> <hr> <h4>留言版</h4> <% @messages.each do |m| %> <hr> <h5><%= m.id %> : <a href="/users/<%= m.user.id %>"><%= m.user.family_name %><%= m.user.first_name %></a>的投稿</h5> <p><%= m.content %></p> <% end %> <%= form_for @message do |f| %> <%= f.text_area :content, :class => "form-control my-form", :placeholder => "留下留言吧!" %> <%= f.hidden_field :receiver, :value => @user.id %> <br> <%= f.submit "登录", :class => "btn btn-warning" %> <% end %> <hr> <p><a href="/users" class="btn btn-primary">返回会员一览</a></p> <% if @user.id == current_user.id %> <p><a href="/users/<%= @user.id %>/edit" class="btn btn-success">编辑会员一览</a> <% end %>

    接着为了使用

    1 <%= m.user.id %>

    这样的设定,追加了
    • app > models > user.rb
    • app > models > message.rb
    这些设定。

     user.rb(追加第7行)
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 6 7 8 9 class User < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :messages end

     message.rb(追加第3行)
    ※ 用半母字母数字打入。一起点击「Command」跟「s」可以保存內容。
     使用Windows的话,点击「ctrl」跟「s」可以保存內容。


    1 2 3 4 5 class Message < ActiveRecord::Base belongs_to :user end