0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ActiveHashでもwhereが使いたい!!

Posted at

結論:できない

なので諦めろ

とは言わない。

苦し紛れだがなんとかなる。安心してくれ

ActiveHashを定義する

SpaceType.rb
class SpaceType < ActiveHash::Base
  self.data = [
    {id: 1, name: "会議室"},
    {id: 2, name: "イベントスペース"},
    {id: 3, name: "シェアオフィス"},
    {id: 4, name: "フロア"},
  ]
end

(案件の内容がバレる...。)

ここは普通に定義

ここからが本題

idが1と2と3を取得したいときは

SpaceType.find [1, 2, 3]

とすればいい。

出力結果

[#<SpaceType:0x00007ffb6193ed60 @attributes={:id=>1, :name=>"会議室"}>, #<SpaceType:0x00007ffb6193eab8 @attributes={:id=>2, :name=>"イベントスペース"}>, #<SpaceType:0x00007ffb6193e860 @attributes={:id=>3, :name=>"シェアオフィス"}>]

で、自分的に使いたかったのが、selectでの表示の制限

その場合は

<%= form.select :space_type_id, options_for_select((SpaceType.find [1, 2, 3]).map{|st| [st.name, st.id]}), {include_blank: "選択してください"} %>

と書けばOK

スクリーンショット 2020-06-20 1.08.45.png

無事、絞り込んだ内容だけが表示され、whereと同じ役割を果たすことができました。


このほかにもメソッドが定義されれいるので知りたい方はこちらの記事もご参照ください。

mission complete

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?