활성 산열을 사용하여 범주 선택

7430 단어 RubyRails

활성 산열을 사용하여 범주 선택


활동 산열이란 무엇입니까


모델 파일에 도도부 현명 등 변경되지 않은 데이터를 직접 기술함으로써 데이터베이스에 저장하지 않은 상태에서 데이터를 처리할 수 있다.또한 이Gem을 사용하면 데이터베이스에서 47개의 도도부 현명의 열을 만들지 않고 데이터를 관리할 수 있다.이번에는 내가 만들고 있는 응용 프로그램의 예를 들어 소개한다.
응용 프로그램의 설명으로 목표는 소득 분류(임금, 상여금, 부업 등) 등 고정된 옵션을 선택할 수 있는 것이다.
공식 페이지 여기서↓↓↓
https://github.com/zilkey/active_hash

Gem 설치


개발 환경 rails6.0.0
GemfileGemfile에서 추적↓↓↓
gem 'active_hash'
bundle install을 계속 실행합니다.

모델 생성하기


Income 모델을 생성합니다.
rails g model income
마이그레이션을 수행합니다.↓↓↓
class Incomes < ActiveRecord::Migration[6.0]
 def change
   create_table :incomes do |t|
     t.integer    :category_id     , null: false  # 収入分類のカラム
     t.integer    :price        , null: false       # 金額
     t.timestamps
   end
 end
end
prefecture에 밑줄로 id[_id]를 붙여야 합니다.id를 외부 키로 관리함으로써 ActiveHash와 관련된 수입 분류를 얻을 수 있습니다.
활성 산열에 대한 모델을 계속 생성합니다.데이터베이스에 새 테이블을 만들 필요가 없습니다.
다른 서류도 필요 없는 서류.
class Category < ActiveHash::Base
  self.data = [
    { id: 1, name: '--' },
    { id: 2, name: '給与' },
    { id: 3, name: '一時所得' },
    { id: 4, name: '事業・副業' },
    { id: 5, name: '年金' },
    { id: 6, name: '配当所得' },
    { id: 7, name: '不動産所得' },
    { id: 8, name: 'アルバイト代' },
    { id: 9, name: 'ボーナス' },
    { id: 10, name: 'その他収入' }
  ]
  # moduleを取り込み↓↓
  include ActiveHash::Associations
  has_many :incomes       # incomeモデルとのアソシエーション
end
그리고 인컴 모형도 편집합니다.
class Income < ApplicationRecord
  extend ActiveHash::Associations::ActiveRecordExtensions
  belongs_to :income_category
  # category_idのid:1以外のときに保存できるバリデーションを設定(1は「--」です。)↓↓
  validates :income_category_id, numericality: { other_than: 1}
end

뷰에서 드롭다운 목록에 범주 선택 표시


라우팅 및 컨트롤러를 편집한 후 뷰를 편집합니다.
<%= form_with model: @income, url:incomes_path, local: true do |f| %>
    <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"income-select"}) %>
    <%= f.text_field :text, class:"text", placeholder:"金額" %>
    <%= f.submit "保存する" ,class:"submit" %>
<% end %>
collection_select는 다음과 같은 형식으로 데이터를 표시할 수 있는 방법이다.이 때 () 내에는 1 매개 변수 (저장된 열 이름), 2 매개 변수 (그룹 데이터), 3 매개 변수 (저장된 항목, 표에 id로 저장), 4 매개 변수 (옵션에 표시된 열 이름, 여기는 수입 분류), 5 매개 변수 (선택 사항), 클래스 이름 순으로 표시됩니다.
이렇게 하면 아래 목록에서 수입 분류를 선택할 수 있다.
이렇게 ↓↓↓

이상!!!참고가 된다면 정말 기쁠 것 같아요!
만약 또 잘못이 있다면 지적해 주세요.

좋은 웹페이지 즐겨찾기