2006-04-21 (金) [長年日記]
1
Class名をインスタンス名に変更する
たとえば、ProjectManagerを project_manager に変更するにはどうすればよい?
(1) がんばる
class ProjectManager
end
pm = ProjectManager.new
pm.class.to_s.gsub(/[A-Z]+/) {|m| '_' + m.downcase }[1..-1]
# => project_manager
(2) すごいやり方がある
(たぶんここに書かれる)
(3) Railsとかにいいメソッドがある
さあ? あるといいな。
(3)' お、ありがとう。
def underscore(camel_cased_word)
camel_cased_word.to_s.gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
2
hidden_tag_list へるぱーだお。
セッション、ダメ、ゼッタイ。な人向け。俺か。
def hidden_tag_list obj
unless obj.blank?
obj.class.columns.collect do |c|
%Q|<input type="hidden" name="#{obj.class.to_s.underscore}[#{c.name}]" value="#{h(obj.send(c.name))}">\n|
end
end
end
[]
| 
ヒント: http://wiki.rails2u.com/misc/string_flections
http://blog.azpoint.net/blog/paxa buy paxil