Rails 방법 및 지식
개시하다
레코드에 사용
일단 필기를 해서 저장하면 보도를 할 수 있는 구체적인 실시에 따라 나중에 데이터를 진행한다.총괄해 나가다.
주위를 살피다
페이지 하이픈 사용
페이지 문자란 긴 글을 여러 페이지로 나누는 것을 가리킨다
매 페이지의 링크를 배열하여 접근하기 편리하다.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_controllerbefore_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
Reference
이 문제에 관하여(Rails 방법 및 지식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yujiro7029/items/5c8de4e5f88eee69c91f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
페이지 하이픈 사용
페이지 문자란 긴 글을 여러 페이지로 나누는 것을 가리킨다
매 페이지의 링크를 배열하여 접근하기 편리하다.
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_controllerbefore_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
Reference
이 문제에 관하여(Rails 방법 및 지식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yujiro7029/items/5c8de4e5f88eee69c91f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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_controllerbefore_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
Reference
이 문제에 관하여(Rails 방법 및 지식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yujiro7029/items/5c8de4e5f88eee69c91f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def create_params
params.require(:review).permit(:name, :rate).merge(product_id: params[:product_id])
end
end
Model.all.order("created_at desc")
Model.find_by(id: params[:id])
モデルクラス名.where('検索するカラム名 LIKE(?)', "検索するキーワード")
@products = Product.where('title LIKE(?)', "%#{params[:keyword]}%")
before_action :set_current_user
def set_current_user
@current_user = User.find_by(id: session[:user_id])
end
@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
Reference
이 문제에 관하여(Rails 방법 및 지식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yujiro7029/items/5c8de4e5f88eee69c91f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)