Rails 방법 및 지식

12148 단어 RubyRails

개시하다


레코드에 사용
일단 필기를 해서 저장하면 보도를 할 수 있는 구체적인 실시에 따라 나중에 데이터를 진행한다.총괄해 나가다.

주위를 살피다


페이지 하이픈 사용


페이지 문자란 긴 글을 여러 페이지로 나누는 것을 가리킨다
매 페이지의 링크를 배열하여 접근하기 편리하다.
gem 'kaminari'
bundle install
kaminari:pageメソッド kaminari:perメソッド kaminari:paginateメソッド 페이지 연결을 표시할 때 사용
 @hoges = Hoge.page(params[:page]).per(5)


###ビューファイルで使用する
<%=paginate(@hoges) %>コントローラで定義した変数をあてる

렌더링 방법


작업을 통해 뷰를 직접 표시하지 않음
.
render 방법에partial 옵션을 추가하면 호출할 템플릿을 지정할 수 있습니다.이번 파티에서 'Twitter' 를 지정했습니다.
또한locals 옵션을 사용하면 일부 템플릿에서 이 변수를 사용할 수 있습니다.
render partial: "ranking/ranking", locals: { product: product}

form_메서드


모델 기반 form 만들기 (창 검색 등)
→ 검색할 때 모델에 인스턴스를 편집하거나 추가할 필요가 없음
뷰 파일에서 설정
form_tag("飛ばすURL") do
end

form_for 방법


모형과 관련된 창을 만들 때 사용(특정'모형'을 편집하고 추가하는 조수 방법 생성)
CRUD 처리 시 form -for를 이용한다고 볼 수 있다.
특정 테이블에서만 레코드(모델 클래스 인스턴스)를 생성하고 업데이트에 사용합니다.
■form_for: 임의의 모형을 바탕으로 하는 form(투고 형식 등) 제작에 사용
- 모델에서 테이블에 입력한 정보를 테이블에 추가/편집
<%= form_for @user, url: "/users/", html{method: :post} do |f| %>

<%= from_for モデルオブジェクト, url:"/飛ばすURL/", html{method: :何でひろうか} do |f| %>
…
<% end %>


form_for에서 사용하는 방법은 f.} 탭 이름: 열 이름으로 지정합니다.
또 다른 여러 가지가 있다.공식 링크

link_to 방법의 사용 방법


이 형상은 보통형이다.이름과 같이 페이지 링크를 붙여넣으려는 머리글에서 자주 사용됩니다.
루트는 기본적으로 get을 읽습니다.
뷰 파일에서 설정
 link_to '表示したい文字', "URL" , method: :hirou, date: {cofirm:"mozi"}

모형 주위


일반적인 데이터 형식과 구분


타입
의향
①text 
= 문자열
②string 
= 짧은 문자열
③integer
= 정수(사용 방법 확인 중)
④float
= 부동 소수점
⑤decimal
= 고정밀 소수점
⑥datetime
= 날짜
⑦timestamp
= 더 자세한 날짜
⑧time
= 시간
⑨date
= 날짜
⑩binary
= 바이너리 데이터
11boolean
=Boolean형
12references
= 외부 키워드 열로 지정

구속 유형


주 키 제약 조건
타입
의향
타입
null: false
공중에 튕기다
NOT NULL 제한 사항
foreign_key: true
외부 열쇠의 ID가 정확하지 않으면 안 됩니다.
외부 키 구속
unique: true
중복열의 발언을 제한하다
유일성 규약

제약의 한 예

t.string :name,               null: false, unique: true, index: true

중간 테이블 설정

class num1 < ActiveRecord::Base
  has_many :num1_num2
  has_many :num2, through: :num1_num2
end

class num2 < ActiveRecord::Base
  has_many :num1_num2
  has_many :num1, through: :num1_num2
end

# 中間テーブル
class Num1Num2 < ActiveRecord::Base
  belongs_to :num1
  belongs_to :num2
end

다대다 관계를 구축함으로써 사용하는 방법

理解してから追加していく

관계

ここも追加してみる

validate 등록


데이터베이스에 부정확한 데이터를 저장하지 않기 위해 검사하는 메커니즘.
기본 형식validates: 검증된 열, {검증된 내용}
발리에서 지정한 제한 사이에 [,]를 더하면 여러 개를 지정할 수 있다
● 공투고 방지의 발리데이
앱-모델에서.
validates :text, :image, presence: true #カラムを指定
● 문자제한 발리
앱-모델에서.
validates :検証するカラム,{length: {maximum: 140}}
● 중복 유효성 확인
앱-모델에서.
validates :検証するカラム,{uniqueness: true}

이른바 플래시


페이지에 한 번만 표시되는 정보입니다.
동작 설정
앱-모델에서.
def hoge
flash[:notice] = "表示したい文字"
end

연관성


블로그 요약
https://blog.hatena.ne.jp/yujiro0320/yujiro-engineer.hatenablog.com/edit?entry=17680117127104730382

컨트롤러 사용 방법


require 방법과perrmit 방법


.require 메서드가 데이터의 객체 이름을 지정합니다.
. perrmit 메서드를 통해 변경(저장 가능한 처리)되는 키를 지정합니다.
컨트롤러에 설명
def create_params
 params.require(:review).permit(:name, :rate).merge(product_id: params[:product_id])
  end
end
참조 카페https://qiita.com/morikuma709/items/2dc20d922409ae7ce216

테이블 데이터 재정렬 정보


데이터베이스에 지정된 모델의 모든 데이터를 대상으로 삼다
created_at를 기준으로 desc에서 추출합니다.
반대로 asc입니다.엑셀 함수도 나와요.ASC 함수 등.
지정된 작업에서 설정
Model.all.order("created_at desc")

특정 열의 값에서 데이터를 가져오려면


지정한 <:id>의 특정 데이터를 수신합니다.
※ id= 데이터베이스에 저장된 순서 번호
지정된 작업에서 설정
Model.find_by(id: params[:id])

where 방법


열 값의 모든 문자열 찾기
어떤 사용자가 투고한 내용을 검색하는 데 사용됩니다.
지정된 작업에서 설정
モデルクラス名.where('検索するカラム名 LIKE(?)', "検索するキーワード")
@products = Product.where('title LIKE(?)', "%#{params[:keyword]}%")


before_액션


모든 동작이 공통적으로 처리될 때.동작을 호출할 때 반드시 before-액션 처리를 실행합니다.
모든 동작이 한 곳을 통일적으로 처리할 수 있다
application_controller
before_action :set_current_user

  def set_current_user
      @current_user = User.find_by(id: session[:user_id])
    end

redirect_to("/URL")


뷰를 생성하지 않을 때 사용합니다.작업을 수행한 후
지정한 보기로 날아가야 하기 때문에 보기가 없어도 오류가 발생하지 않습니다.
@user = User.new(name: params[:name],email: params[:email])
   @user.save
   redirect_to("/users/#{@user.id}")
이런 형식도 있다.
redirect_to root_path unless user_signed_in?
이렇게 써요.
redirect_to controller: :products, action: :index

좋은 웹페이지 즐겨찾기