こんがりぃ

都内在住フリーランスのエンジニア。主にRuby on Rails。Twitter(@Kongari_Bug)で格ゲー。

Rails: selectボックスでrequired: trueにしたときinclude_blank: falseがきかない

環境

Rails: 5.2.2
Ruby: 2.5.3

問題

題名の通り。今回やりたかったことは「選択してください」みたいな選択肢を入れるので空白の選択肢は必要なかった。

結論

そういうものらしい?

`select` form helpers with `required: true` generate a blank option even when one is already present · Issue #31083 · rails/rails · GitHub

なので空白の選択肢を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' の違い

参考: matatsuna.hatenablog.com

基本的に書き方や出処が違うだけで同じ機能。

次に 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

解決したかも。記事にしました。

kongaribug.hatenablog.com

vagrantでubuntu 18.04使用時にconfig.vm.network "private_network"がエラーを吐く

環境

エラー内容

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回ぐらいは行きます。