Rubbyon Rails를 통해 트위터 웹 응용 프로그램 STEP4 만들기: 발표 기능의 일람 디스플레이, 새로운 투고

7875 단어 Rails
발언 모드 및 테이블 작성
명령행
$ rails g model Tweet body:string user_id:integer
$ rails db:migrate
발언 컨트롤러 만들기
명령행
$ rails g controller Tweets index new create show edit destroy
라우팅 설정
config/routes.rb
  resources :users do
    resources :tweets, only: [:new,:create]
  end
  get "tweets/index"
사용자 모델과 트위터 모델을 연결합니다
app/models/users.rb
has_many :tweets
app/models/tweets.rb
belongs_to :user
새로 게시된 뷰 작성
app/views/tweets/new.html.erb
<h3 class="page-header">今日の出来事をつぶやこう</h3>
<%= form_for([@user, @user.tweets.build]) do |f| %>
<p><%= f.label :body,"投稿内容" %></p>
<p><%= f.text_area :body %></p>
<p><%= f.submit "投稿", class: "btn btn-primary" %></p>
<% end %>
발언 목록 보기 만들기
app/views/tweets/index.html.erb
<h3 class="page-header">ツイート一覧</h3>
<ul class="list-group">
  <% @tweet.each do |tweet| %>
  <li class="list-group-item">
    <span class="badge text-danger"><%= link_to "[削除]",tweets_destroy_path,method: :delete %></span>
    <%= tweet.body %>
  </li>
  <% end %>
</ul>

Twitter 컨트롤러 설정
app/controllers/tweets_controller.rb
class TweetsController < ApplicationController
  def index
    @tweet = Tweet.all
  end

  def new
    @user = User.find(params[:user_id])
  end

  def create
    @user = User.find(params[:user_id])
    @user.tweets.create(tweet_params)
    redirect_to tweets_index_path
  end

  def destroy
    @tweet = Tweet.find(params[:id])
    if @tweet.destroy
    redirect_to "/",flash: {danger: "投稿を削除しました"}
  end
  end

  private
  def tweet_params
    params.require(:tweet).permit(:body)
  end
브라우저에서 발언 기능 확인


좋은 웹페이지 즐겨찾기