2013/04/19

Refactoring Ruby on Rails

Rubyのメソッド名をキャメルケースからRuby準拠に書き改めている際に
"Template is missing ....."
というエラーが起きてしまった。調べると、

 http://stackoverflow.com/questions/6495046/template-is-missing
This error happens if you don't redirect in the create method of you controller.
Are you redirecting in the create method in the controller or rendering the new form, incase of error?
Without the redirect in the create method in the controller, you need to define create.html.erb. Usually, after successful creation, you redirect to some other page like shown below....

ということで、「メソッド名」と「ファイル名.html.erb」が対応していないと起こるエラーらしい。微妙な違和感もあるが、まぁJavaもクラス名とファイル名は対応させるもんね。

それよりRuby準拠の命名規則がRuby学習中には(覚えている限り)どこにも書いてなかったということが問題だ。そのせいで全面的にリファクタリングしなきゃならないことになったんだし。サンプルコードだけで察せよというのは無理だろう。
C言語もそうだけど、そういう重要なことはちゃんと周知徹底して欲しい。

今RubyMineを試用中で、色々指摘されている。↓を一度読んでみることが大事だ。
https://github.com/bbatsov/ruby-style-guide

# bad - how many 0s are there?
num = 1000000

# good - much easier to parse for the human brain
num = 1_000_000
マジかよそれはやり過ぎだって。

# Never use then for multi-line if/unless.
# bad
if some_condition then
  # body omitted
end

# good
if some_condition
  # body omitted
end
じゃぁ構文エラーにすればいいのに…

多少ビビる規則もあるが一読するとやり易くなると思った。

0 件のコメント:

コメントを投稿