색인 페이지에 좋은 수면 기능을 첨가하다

2241 단어 좋다indexRails

의 목적


여기서 index 페이지에 좋은 기능을 추가하는 방법과 구조를 설명하고 싶습니다.rails의 좋은 기능을 설명하는 많은 보도들이 show 페이지에만 대응하고 있다.index 페이지에서 그것을 사용할 때 주의점이 하나 있다.
※ show 페이지의 좋은 기능은 실현 가능하다는 전제에서 말한 것입니다.
참고 자료
https://qiita.com/nojinoji/items/2c66499848d882c31ffa

개요

  • 색인 페이지
  • 해설
  • 1. index 페이지


    index 페이지에 좋은 기능을 추가할 때 아래 가운데 5줄을 임의의 위치에 추가하십시오.대부분의 경우 each do에 들어가야 합니다.
    views/tweets/index.html.erb
    <% @tweets.each do |t| %>
    ・
    ・
      <% if current_user.already_liked?(t) %>
        <%= button_to 'いいねを取り消す', tweet_like_path(id: t.id, tweet_id: t.id), method: :delete %>
      <% else %>
        <%= button_to 'いいね', tweet_likes_path(id: t.id, tweet_id: t.id) %>
      <% end %>
    ・
    ・
    <% end %>
    

    2. 해설


    show 페이지에 잘 쓴 기능과 index 페이지에 잘 쓴 기능의 큰 차이는 매개 변수로 보내는 변수의 차이이다.
    책장<%= button_to 'いいねを取り消す', tweet_like_path(@tweet) %>색인 페이지<%= button_to 'いいねを取り消す', tweet_like_path(id: t.id, tweet_id: t.id) %>like 모형은 Twitter-id를 저장해야 합니다.show 페이지에서 URL에 Twitter를 표시합니다.id가 삽입되어 있기 때문에 @tweet 보내면 트위터id를 보낼 수 있는 인자입니다.
    하지만, index 페이지에서 트위터-id는 eachdo가 쓴 t에서 끌어내야 합니다.이 실현은 다음과 같다.
    id: t.id에서 t.id를 원래 포함된 URL의 id 부분으로 대입
    tweet_id: t.id 매개 변수의 Twitterid를 지정해 드릴게요.
    이렇게 두 단계의 공사로서 두 개의 매개 변수를 기술하면 먼저 갈지를 맞출 수 있다.
    ①의 기술이 없으면, 예를 들어 like의destroy 동작에 다음과 같은 오류가 발생할 수 있습니다.

    이것은 index 페이지의 URL에 Twitter/: id가 없다는 뜻입니다.Destroy 동작은 트위터의 id가 URL에 존재하지 않으면 오류가 발생하는 방법입니다.아마도 루트가 트위터에 like를 넣었기 때문일 거예요.
    (참고로 like의create Action은 path 부분을 (t)라고 써도 움직인다.이 차이는 뭘까요?그리고 index 페이지에서commeent를 처리할 때도 같은 일에 주의해야 하나요?

    좋은 웹페이지 즐겨찾기