環境
- Ruby 2.5.1
- Rails 5.2.1
現象
DBにまだ保存されていないActiveRecordインスタンスのリレーションに対して pluck
を使っても期待した値が取れない
comment = Comment.new comment.tags.build comment.tags.pluck(:id) # => [] NG! comment.tags.map(&:id) # => [nil] OK!
DBにまだ保存されていないActiveRecordインスタンスのリレーションに対して pluck
を使っても期待した値が取れない
comment = Comment.new comment.tags.build comment.tags.pluck(:id) # => [] NG! comment.tags.map(&:id) # => [nil] OK!
サブクラスを呼び出したかったがそうはならない。
class A def self.inherited(child) p child child.aaa B.aaa aaa end def self.aaa p "A" end end class B < A def self.aaa p "B" end end p "#" * 40 B.aaa
実行結果
B "A" "A" "A" "########################################" "B"
rails new
したあとに rails webpacker:install:react
すればよいと聞いていたのでやってみるがエラーが出た
$ bundle exec rails webpacker:install:react Node.js not installed. Please download and install Node.js https://nodejs.org/en/download/
Node.jsはapt-get install nodejs
で入れていたつもり
$ nodejs -v v4.2.6
もしかしたら node
ではなく nodejs
にコマンド名がなっているせいかと思い nodejs-legacy
をインストール
$ sudo apt-get install nodejs-legacy $ bundle exec rails webpacker:install:react Webpacker requires Node.js >= v6.4 and you are using v4.2.6 Please upgrade Node.js https://nodejs.org/en/download/
エラーがversionエラーになった。
nodejsを最新版に上げてみる
$ sudo apt-get install npm $ sudo npm install -g n $ sudo n stable $ sudo ln -sf /usr/local/n/versions/node/7.10.0/bin/node /usr/bin/node $ node -v v7.10.0 $ bundle exec rails webpacker:install:react Webpacker requires yarn. Please download and install Yarn https://yarnpkg.com/lang/en/docs/install/
yarnがいるよと言われた。
$ sudo npm install -g yarnpkg $ yarn -v yarn install v0.15.1 $ bundle exec rails webpacker:install:react Configuration config/webpack/paths.yml file not found. Make sure webpacker:install is run successfully before running dependent tasks
rails webpacker:install
が必要っぽい
$ bundle exec rails webpacker:install Webpacker is installed � sing /home/ubuntu/rails/config/webpack/paths.yml file for setting up webpack paths Copying react preset to your .babelrc file Copying react loader to /home/ubuntu/rails/config/webpack/loaders create config/webpack/loaders/react.js Copying react example entry file to /home/ubuntu/rails/app/javascript/packs create app/javascript/packs/hello_react.jsx Installing all react dependencies run ./bin/yarn add react react-dom babel-preset-react prop-types from "." Yarn executable was not detected in the system. Download Yarn at https://yarnpkg.com/en/docs/install Webpacker now supports react.js �
yarnがない?npmじゃなくてパッケージで入れてみる
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list $ sudo apt-get update && sudo apt-get install yarn $ bundle exec rails webpacker:install:react Done in 5.22s.
できたっぽい。
yarnはパッケージじゃないとだめっぽいので以下を再実行したほうがよさそうです。
$ bundle exec rails webpacker:install $ bundle exec rails webpacker:install:react