Rails에서 7개의 기본 동작 이외의 작업 정의

4080 단어 RubyRails

기본 동작을 복습하다.


다음은 Rails의 표준 동작입니다.

자체 정의 작업


위에서 설명한 기본 작업 이외의 작업을 수행하려면 직접 정의할 수 있습니다.
이 때 루트의 정의 방법은collection과member를 사용할 수 있습니다

Rails.application.routes.draw do
  resources :hoges do
    collection do
      HTTPメソッド 'オリジナルのメソッド名'
    end
  end
end
Rails.application.routes.draw do
  resources :hoges do
    member do
      HTTPメソッド 'オリジナルのメソッド名'
    end
  end
end
다른 것은 생성된 루트에 id가 있거나 첨부되지 않았는지 여부입니다.
・collection→: id 없음
• member →: id 있음
특정 페이지 등으로 이동할 필요가 있으면member를 사용하십시오.
그리고 중요한 것은 방법의 내용을 어디에 기술하는가이다.
일반적으로 개발 현장 등에서 표(DB)의 교환과 관련된 방법은 일반적으로 모델에 기재된다.
예를 들어 검색 기능을 실현하고 싶을 때 이 처리 방법을 모델에 쓰고 컨트롤러로 호출(view의 검색 형식 등 기술 생략)

사용 예


routes.rb
 resources :tweets do
    collection do
      get 'search'
    end
  end
tweet.rb
class Tweet < ApplicationRecord
  #省略

  def self.search(search)
    return Tweet.all unless search
    Tweet.where('text LIKE(?)', "%#{search}%")
  end
end
tweets_controller.rb
class TweetsController < ApplicationController

  #省略


  def search
    @tweets = Tweet.search(params[:keyword])
  end

end
따로따로 설명하다
우선 검색 동작의 경로를 설정합니다.검색 결과를 표시하기 위해서 자세한 페이지를 볼 필요가 없기 때문에collection을 사용합니다.
form에서 사용자가 검색한 후 controller에서 검색 동작 호출 모델에 기술된 검색 방법입니다.이 때 검색 결과는 매개 변수로 전달됩니다(params[keyword])
검색 결과는 모델의 검색 방법에 변수 검색을 대입하여 방법에서 사용할 수 있습니다.
처리된 내용은 검색 내용이 비어 있는 상황에서 모든 투고를 얻고 수치가 있으면where 방법 내용의 조건식과 일치하는 투고를 얻는 것이다.

좋은 웹페이지 즐겨찾기