Rails: enumerizeでselect box用の配列を作る
class A extend Enumerize enumerize :status, in: { pending: 0, in_progress: 1, completed: 2 } end A.status.values.map { |v| [v.text, v.value] }
Ransackの検索用ラベルから検索述語を削除してattribute名を得る
Class: Ransack::Predicate — Documentation for ransack (1.7.0)
↑で検索述語が取れるので
label = "hogehoge_cont" label.gsub(/_#{Ransack::Predicate.detect_from_string(label).to_s}\z/, '')
など。 or
などは取れないので注意。
Rails: selectボックスでrequired: trueにしたときinclude_blank: falseがきかない
環境
問題
題名の通り。今回やりたかったことは「選択してください」みたいな選択肢を入れるので空白の選択肢は必要なかった。
結論
そういうものらしい?
なので空白の選択肢をjavascriptで消すか、今回の場合は空白の選択肢にテキストをjqueryで挿入した。
$('#form-hogehoge option').each(function(index, element){ if($(element).val() === '') { $(element).text('選択してください'); } });
javascript: requireとimportとimport()
先日 import
関連の記事を書きましたが
RailsのwebpackerにおけるCSSインポート時のrequire, importによる違い - こんがりぃ
そもそも import 'hogehoge'
と import('hogehoge')
があることを知りませんでした。
まず require('hogehoge')
と import 'hogehoge'
の違い
基本的に書き方や出処が違うだけで同じ機能。
次に import 'hogehoge'
と import('hogehoge')
参考: qiita.com
括弧がある方は動的読み込みなんですね。であれば前回記事のも納得できる。
RailsのwebpackerにおけるCSSインポート時のrequire, importによる違い
環境
概要
webpackerを使ってCSSを利用するため、jsファイルにCSSをインポートする必要があり、以下の2つの書き方がある
// application.js require('../stylesheets/application.scss')
// application.js import('../stylesheets/application.scss')
どちらを使うかによってviewで使用するヘルパーが変わる
viewでの読み込み方法
requireの方は
= javascript_pack_tag 'application' = stylesheet_pack_tag 'application'
importの方は
= javascript_pack_tag 'application'
のみでCSSも読み込まれる。
理由
不明。詳しい方コメントで教えていただけると助かります。
追記: 2019/01/27
解決したかも。記事にしました。
vagrantでubuntu 18.04使用時にconfig.vm.network "private_network"がエラーを吐く
環境
- Vagrant 1.9.3
- Ubuntu18.04
エラー内容
config.vm.networkを設定してvagrant up時に以下のエラーを吐く
/sbin/ifdown 'enp0s8' || true /sbin/ip addr flush dev 'enp0s8' # Remove any previous network modifications from the interfaces file sed -e '/^#VAGRANT-BEGIN/,$ d' /etc/network/interfaces > /tmp/vagrant-network-interfaces.pre sed -ne '/^#VAGRANT-END/,$ p' /etc/network/interfaces | tac | sed -e '/^#VAGRANT-END/,$ d' | tac > /tmp/vagrant-network-interfaces.post cat \ /tmp/vagrant-network-interfaces.pre \ /tmp/vagrant-network-entry \ /tmp/vagrant-network-interfaces.post \ > /etc/network/interfaces rm -f /tmp/vagrant-network-interfaces.pre rm -f /tmp/vagrant-network-entry rm -f /tmp/vagrant-network-interfaces.post /sbin/ifup 'enp0s8' Stdout from the command: Stderr from the command: bash: line 4: /sbin/ifdown: No such file or directory bash: line 20: /sbin/ifup: No such file or directory
原因
ifdown, ifupがubuntu 18.04にはデフォルトでインストールされていないため。
対策
ifupdownをインストールする。
sudo apt-get update sudo apt-get install ifupdown
インストール後、手動でifup or 再起動
2019年目標など
こんにちは、たづです。
このブログは技術的メモとして使っていたのですが、昨年フリーランスのエンジニアになったこともあり、今年は記事数を増やす+技術的なこと以外ももし何かあれば書いていこうかなと思っています。
2018年まとめ
6月末で勤めていた会社を辞めてフリーランスになりました。フリーランスといっても完全に一人でやるのではなく、繋がりのあったフリーランスの先輩といっしょに仕事を取っていく感じです。
お仕事募集中です。Railsエンジニア、およびサーバ運用・設計などができます。 お受けできるかはその時の状況や依頼内容によりますが、興味がある方は kongaribug😡gmail.com まで。
7月~年末まではフリーランスとしてRails案件の決済系部分の設計から実装までを担当していました。こちらのプロジェクトは年末で一段落し今は暇しています。
2019年目標など
ブログ更新する
最初に書いた通り、ブログ更新頻度を上げていきます。基本的には技術的なことを書きますが、それ以外のことも書いていきます。最初は週3ぐらいで書ければと思っています。
フロントエンド/デザイン 的なことを勉強したい
現状、デザインに関して知識がないので、仕事においてデザインはどうしますか?と他の人に丸投げする形しかできていないので、そっち方面でもっと力をつけていきたいなと考えています。
スマホアプリを出す
割と作っていた時期もあるのですが、僕依存の問題でリリースまでいけなかった過去があるので今年はリリースまでいきます。
webアプリを作っていく
仕事ではなく趣味、習作、もしくは個人事業として作っていきます。2018年はRailsで2個ほど作りました。
ジムにいく
毎月1度も行っていないジム費用が落とされているのが虚しいので毎月10回ぐらいは行きます。