たまに愚痴でもいいか。

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 のファイル



config.assets.precompile += %w( ie*.css jquery-ui.css )
config.assets.precompile += %w( *.js )
に書けば、ちゃんとprecompileしてくれます。
しかし、Rails4ここ方法では効かないです。



解決方法は:
config/application.rbファイルに



config.assets.precompile += %w( ie*.css jquery-ui.css )
config.assets.precompile += %w( *.js )
書くとprecompileしてくれます。


ちょっとここでハマったので、参考になれればと思います。

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, :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
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がほぼ存在しているので
それらを使って臨時的に対応できる。