###前提・実現したいこと
環境
ruby:2.2.3p173
rails:4.2.5
ransack:1.7.0
db:MySQL5.6.22
実現したい事
database viewに対してransackで検索を行えるようにしたい。
###発生している問題・エラーメッセージ
databaseにviewを作成し、ransackでそのviewに対しての検索画面を作成して実行したところ、以下のエラーが発生しました。
No table named hoge_views exists
###試したこと
エラーを追っかけていると、どうもActiveRecordのtable_exists?がfalseを返しているために発生している事が分かりました。
そこで、rails consoleで以下を実行してみると、確かにfalseが返ってきます。
試しに他の通常のtableに対して行うとtrueが返ってきました。
irb(main):001:0> HogeView.table_exists? (2.3ms) SELECT table_name FROM information_schema.views WHERE table_schema = SCHEMA() (1.9ms) SELECT table_name FROM information_schema.views WHERE table_schema = SCHEMA() (2.8ms) SELECT table_name FROM information_schema.views WHERE table_schema = SCHEMA() => false irb(main):002:0>
上記で実行されているSQLを直接MySQLにログインして発行すると、以下のようになります。
[test_app_develop] mysql> SELECT table_name FROM information_schema.views WHERE table_schema = SCHEMA(); +-----------------------+ | table_name | +-----------------------+ | hoge_views | +-----------------------+ 1 row in set (0.01 sec)
Googleで検索するとSQLite3について同じような事がransackのissueに書いてあったのですが、最終的にrailsの本体が修正されて終わっているようでした。
https://github.com/activerecord-hackery/ransack/issues/338
railsのソースを追っかけられる程の知識も無いため、ここで手詰まりになってしまいました…。
解決法が分かると一番嬉しいのですが、現状だと何を調べれば良いかすら分からなくなっているため、どんな些細な事でも良いので何か気付いた事が有りましたら教えて頂けないでしょうか…。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。