활성 해싱 정보
2970 단어 ActiveHash초보자Rails
잊지 않기 위해서 기사를 쓰고 싶어요.
Active Hash란 무엇입니까?
우선, ActiveHash는 Gem으로 모델 파일에서 변경되지 않은 데이터를 직접 설명하여 데이터베이스에 저장하지 않은 상태에서 데이터를 처리할 수 있다.
예컨대 도도부현 등은 변경되지 않겠지.
이런 데이터는 데이터베이스가 아니라 모델로 관리된다.
내가 개발한 오리지널 응용 프로그램의 부분은 아래의 이미지 부분이다.
ActiveHash는 문서 문제 및 사진 제목 섹션에 사용됩니다.
가져오기 방법
우선gemfile에 다음과 같은 내용을 기술합니다
Gemfile
gem 'active_hash'
그리고 행복의 종착역에서bundle install
서버를 시작한 후 다시 시작합니다.현재 배치가 완료되었습니다.
모델과 데이터베이스를 만듭니다.
방금 이미지 정보는post모델을 만들고 데이터베이스에 저장했습니다.
우선post모델을 만듭니다.
% rails g model post
생성이 완료되면 데이터베이스에서 설명합니다.class CreatePosts < ActiveRecord::Migration[6.0]
def change
create_table :posts do |t|
t.string :title
t.string :sentence, null: false
t.integer :genre_id, null: false
t.references :user, foreign_key:true
t.timestamps
end
end
end
관심은 아래의 부분이다.t.integer :genre_id, null: false
열 이름에 id를 붙여서 열의 형식을integer 형식으로 지정합니다.기술하면
% rails db:migrate
현재 데이터베이스 설정이 완료되었습니다.Genre 모델 생성하기
다음은genre 모델을 만들고 저장하는 내용을 설명합니다.
% rails g model genre
그리고 제작된 모형이 없는 상태에서 다음과 같이 기술한다.class Genre < ActiveHash::Base
self.data =[
{ id: 1, name: '--' },
{ id: 2, name: '文章問題' },
{ id: 3, name: '写真にタイトルをつけてください' },
]
end
먼저 모델에 대해 Genre 클래스를 정의한 다음 ActiveHash::Base 클래스를 상속합니다.ActiveHash::Base는 모형(클래스)에서 ActiveHash를 사용할 때 필요한 클래스입니다.ActiveHash의 Gem에서 정의합니다.
또한 계승 활동 산열::Base를 통해 활동 기록과 같은 방법을 사용할 수 있습니다.
그리고 저장하고 싶은 물건에 번호를 붙여 데이터베이스에서 그 번호를 관리한다.
연결 설정
post모델에 다음과 같은 내용을 기술합니다.
extend ActiveHash::Associations::ActiveRecordExtensions
belongs_to :genre
투고한 물건은 한 종류와 관련이 있다.따라서 Article 모델에는belongs_설정 to.또한 extend ActiveHash::Associations: ActiveRecord Extensions를 작성하여 설정해야 합니다.
설정 확인
그런 다음 검증을 설정합니다.
validates :genre_id, numericality: { other_than: 1, message: 'Select'}
즉, ID가 "1"인 경우 저장할 수 없습니다.이번에 ID가 1일 때 "--"을 설정했기 때문에 검증된 기술입니다.
설명 뷰
마지막으로 보기의 설명입니다.
<%= f.collection_select(:genre_id, Genre.all, :id, :name, {}, {class:"select-box"}) %>
매개변수의 내용은 다음과 같습니다.<%= form.collection_select(保存されるカラム名, 配列データを指定する, カラムに保存される項目, 選択肢に表示されるカラム名, オプション, htmlオプション) %>
첫 번째에서 네 번째 매개변수를 설정해야 합니다.다음은 ActiveHash 설정 방법입니다.
아니면 초보자가 틀릴 수도 있어.
필요한 것이 있으면 지적해 주십시오.
Reference
이 문제에 관하여(활성 해싱 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tetsu1026/items/e2b40d5313e66ad06375텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)