혼잣말 앱 만들기 ⑤
5627 단어 Rails
혼잣말 삭제를 위해destroy 동작을 사용합니다.
라우팅 구성
config/routes.rb
Rails.application.routes.draw do
root to: 'tweets#index'
resources :tweets, only: [:index, :new, :create, :destroy]
end
뷰에 링크 추가
그리고 link_to 방법으로 삭제 단추를 추가하세요.
삭제할 트위터를 구분하기 위해 경로는 트위터의 id를 매개 변수로 합니다.
/tweets/'트윗의 id'를 통해 매개 변수로 수신할 수 있습니다.
HTTP 메서드는 DELETE를 지정합니다.
Prefix를 사용하여 경로를 지정하는 방법을 살펴보겠습니다.
Prefix
경로의 URI Pattern 이름을 변수로 지정합니다.
URI Pattern 대신 Prefix를 사용하여 경로를 나타낼 수 있습니다.
삭제할 destroy 작업에 대응하는 Prefix는 tweet입니다.
트윗이라는 Prefix라서 트윗_경로와 경로를 지정합니다.
HTTP 메서드는 DELETE입니다.
URI Pattern은 트위터의 ID(tweet.id)를 포함하기 위해 "/tweets/#{tweet.id}"라고 설명합니다.
Prefix를 사용할 때 tweet_path(tweet.id)와 같은 Prefix 매개 변수로 전달합니다.
#URI Patternの場合
<%= link_to '削除', "/tweets/#{tweet.id}", method: :delete %>
#Prefixの場合
<%= link_to '削除', tweet_path(tweet.id), method: :delete %>
다음은 컨트롤러를 위한 동작을 정의합니다.
삭제하려면 트위터 컨트롤러에서destroy 동작을 정의하십시오.
어떤 트위터를 삭제할지 확인하려면params[:id]를 사용하여 삭제할 트위터의 정보를 얻으십시오.
이때 params[:id]는 Prefix에서 지정한 tweet_path(tweet.id)의 트윗입니다.id에 해당하는 숫자를 입력하십시오.
app/controllers/tweets_controller.rb
class TweetsController < ApplicationController
def index
@tweets = Tweet.all
end
def new
@tweet = Tweet.new
end
def create
Tweet.create(tweet_params)
end
def destroy #destroyアクション追加
tweet = Tweet.find(params[:id])
tweet.destroy
end
private
def tweet_params
params.require(:tweet).permit(:name,:text,:image)
end
end
절차를 설명하자면동적 입력 프롬프트에서 클릭
find 방법으로 트위터를 가져오고destroy 방법으로 삭제합니다.
뷰를 작성하고 다음 코드를 입력합니다.
app/views/tweets/destroy.html.erb
<div class="contents row">
<div class="success">
<h3>削除が完了しました。</h3>
<a class="btn" href="/">投稿一覧へ戻る</a>
</div>
</div>
동작을 확인해 보세요.아래와 같이 성공이다.Reference
이 문제에 관하여(혼잣말 앱 만들기 ⑤), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masakichi_eng/items/d1546ca564f1984a69d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)