質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

1422閲覧

プログラムの記述方法が変更に気づくには?

TakumaN

総合スコア120

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

2グッド

0クリップ

投稿2016/07/15 09:16

railsのdeviseで今までは下記のようにdeviseコントローラーに記述して利用していました。

rails

1 before_action :configure_permitted_parameters, if: :devise_controller? 2 3private 4 def configure_permitted_parameters 5 devise_parameter_sanitizer.for(:sign_up)<<:name 6 end

しかし、今日同じように記述してもエラーになり、ハマってしまいました。
自分で調べてみるとparameter_sanitizerのAPIが変わったので、記述方法も以前とは変わって下記のような書き方になりました。(参考URL)

rails

1before_action :configure_permitted_parameters, if: :devise_controller? 2 3private 4 def configure_permitted_parameters 5 devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) 6 end

このような変更についての情報を皆さんはどのようにチェックしていますか?

また、初心者なのでわからないのですが、このようなことは頻繁に起こるのでしょうか?

新しい記述方法はまだ情報が少なく(検索順位が低く)、かなり調べてやっと解決できたので、今後も知らない間に記述方法が変わっているという状況に出くわすたびにハマってしまうと辛いです。

nnssn, thinca👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

プログラムやライブラリの互換性のない変更をどのようにして知るのか、ですね。

互換性のない変更がどの程度の頻度で起きるかは、ソフトウェアによってまちまちです。それぞれ文化があり、ガンガン変更するものから互換性を重視するものまで様々です。どういう文化なのかはある程度その文化に触れているとわかってきたりしますが、ある程度は慣れですね。

変更を知る方法についてですが、まずはバージョンを意識しましょう。

今回恐らく TakumaN さんは、何らかの理由で以前使ったことがあるのとは違うバージョンの Rails に触れることになったのだと思います。
特に今回、Rails のメジャーバージョンが 4 から 5 に変わっています。
メジャーバージョンアップでは非互換の変更が入る可能性が高いです(これも程度は文化次第ですが)。
となると何かしら変更があるだろうと予想することができるので、その変更点について調べる、と言う流れになります。
実際、Rails 5 は Rails 4 からのメジャーバージョンアップですので、これ以外にも様々な変更(罠)があります(参考)。

調べる方法ですが、大抵の場合は変更点をまとめたリリースノート公式アナウンスが公開されているので、それを読みます。Rails くらい有名なものの場合は他の人がまとめてくれる場合もあるので、そういったものを探して参考にするのも良いでしょう。ただし、一番信用できるのは1次情報ですので、まとめでは解決しなかったり載ってなかったりした場合は公式の情報を見ます。

別のパターンも紹介します。
多くのライブラリを利用していると、その1つ1つについての変更を追うのは大変です。全てを調べるのは難しいでしょう。
となるとどうなるかというと、実際に問題が起きてから調べることになります。TakumaN さんが今回やったのと同じですね。
調べる方法については事前に調べる場合と同じです(ただし、原因がバージョンアップによるものだと当たりをつけた後になりますが…)。

ちなみに、このようなトラブルを避けるために、パッケージ管理ツールの中には使用するライブラリのバージョンを固定できるものもあります。Ruby Gems や Node.js の npm なんかがそうです。
プロジェクト開始時(もしくは新規パッケージ導入時)に、その時に使用したライブラリのバージョンを記録しておき、必要になった時に必要な分だけバージョンを上げる、と言った運用が可能になります。もちろんバージョンを上げる際は、事前に調査をしてからになります。

以上、参考になれば幸いです。

投稿2016/07/15 11:23

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Google Maps API 許すまじです。
何度勝手に互換性のない変更をするのかと。

更新をこまめに追いかけてないといけないんでしょうね。

投稿2016/07/15 11:30

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問