たまに愚痴でもいいか。
Rubyで
仕事しているので楽しい。Railsがもっと楽しい。
しかし、最近、現在関わっているRails appsが複雑になりずつあり、ストレスがだんだんたまってきた。
私はシンプル志向なので、複雑なると簡単にしようとしている傾向がある。時間かけてもいいからやってしまう。
しかし、仕事に関わるとうまく行かないね。。。
言われた仕事だけに散々振り回されて、自分がやりたいことができないのが現状。。。
すぐ切れてしまうの性格だから、人間関係にもちょっと心配だね。
無駄な衝突の防げるために、仕事の席場所を変えたり、自宅で作業したりするけど、
いつまで続けるだろうね。これて本当に自分が望む仕事姿勢なのか、再検討する必要ある。
ちなみにRailsはやめないよ。好きだから、
hahaha
以上、私の最近の愚痴でした。
Rails4でハマった件、
Rails4での問題点:
app/assets/javascripts/application.jsとstylesheets/application.css
という manifest fileに書かれたコンテンツはちゃんとprecompileしてくれますが、
それ以外の静的ファイのコンテンツはprecompileしてくれません。
Rails3では
config/environments/production.rb のファイル
しかし、Rails4ここ方法では効かないです。
解決方法は:
config/application.rbファイルに
ちょっとここでハマったので、参考になれればと思います。
Asset PipelineはRails4になってからどう変わったのか?
My MEMO:
Rails3.1からAsset Pipelineを導入し始めましたが、主に二つの問題がありました。
一つは重要なパッケージSprocketsのバージョンが古い。
もう一つは、プリコンパイルが遅い。
という問題がありました。
しかし、Rails4になって以上問題を解決したのです。
Rails3の時にはSprocketsを直接利用しましたが、
Rails4には、Sprockets-railsというGemを投入することで、Sprocketsの最新バージョンを利用可能になったのです。
これのお陰て、Asset PipelineはRails本体から独立して開発を進めれるようになりました。
プリコンパイルに関しては、実行スピードを大幅に改善しました。
参考
WEB+DB
Rails技術者認定試験の上位資格である「Rails4シルバー試験」を発表
Rails4対応資格が出ました。
http://www.railscp.org/docs/2013070900017/
対応バージョン
Rails 4.0
種別 シルバー試験:Ruby on Railsの実務で使えるコーディング力を問う試験
受験料金
シルバー試験12,000円/回(税抜)
試験開始時期(予定)
2013年秋 公開ベータ試験の実施
2014年春 本試験開始
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
受けてみようかな〜、面白そう!!!!
Rails4になってから、ActiveModelというAPIもすげシンプルになった。
http://tsubo3.wordpress.com/2011/12/26/rails3-activerecordではないモデル/
上のブログに書かれているコードをRails4にすると以下になると思います。
元のRails3のコード:
app/models/contact.rb
class Contact
include ActiveModel::Conversion
include ActiveModel::Validations
extend ActiveModel::Naming
extend ActiveModel::Translation
attr_accessor :name
attr_accessor :email
attr_accessor :subject
attr_accessor :message
validates :name, :presence => true
validates :email, :presence => true,
:confirmation => true,
:format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
validates :subject, :presence => true
validates :message, :presence => true
def persisted?; false; end
def initialize(attributes = {})
self.attributes = attributes
end
def attributes=(attributes = {})
if attributes
attributes.each do |name, value|
send "#{name}=", value
end
end
end
def attributes
Hash[instance_variable_names.map{|v| [v[1..-1], instance_variable_get(v)]}]
end
end
Rails4にすると
class Contact
include ActiveModel::Model
attr_accessor :name, :email, :subject, :messagevalidates :name, :presence => true
validates :email, :presence => true,
:confirmation => true,
:format => { :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i }
validates :subject, :presence => true
validates :message, :presence => true
end
include ActiveModel::Modelを追加しただけで すごくシンプルになるね。
Rails4削除された機能のおさらい。
myメモ
● vendor/pluginの削除
● ActiveResourceの削除
● matchのroutingの設定の無効
● hash形式のfinderメソッドの削除 find(:all) all(conditions: {name: 'ruby'})など
● find_by_xxxの削除 find_all_by_xxx, find_last_by_xxx, find_or_create_by_xxxなどを含め。
● ActiveRecord::SessionStoreの削除 (対応gem: activereord-session_store)
● ActiveRecord::Observerの (対応gem: rails-observers)
● rack-cacheの削除 (対応gem: rack-cache)「RackレベルでHTTPレスポンスをキャッシュする」
● ActionDispatch::PerformanceTestの削除 (対応gem: rails-perftest)
参考: WEB+DB
PS
機能は削除したが
対応できるgemがほぼ存在しているので
それらを使って臨時的に対応できる。