【Ruby】Ruby on Rails Part6
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/10/24(金) 17:46:53ID:???http://pc11.2ch.net/test/read.cgi/php/1207425569/
■参考サイト
<英語>
本家:http://www.rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
■参考スレ
Rubyについて Part 33
http://pc11.2ch.net/test/read.cgi/tech/1223709050/
Ruby 初心者スレッド Part 22
http://pc11.2ch.net/test/read.cgi/tech/1221467121/
0855nobodyさん
2009/04/05(日) 22:48:27ID:???WindowsのコマンドプロンプトでUTF-8を表示する方法がある。
>>854
そういうヘルパを書けば良いだけでは。
link_toの第一引数が無くて、中ではurl_forを使うやつ。
0856nobodyさん
2009/04/05(日) 23:00:04ID:???link_to は第一引数に nil 渡すとURL文字列にリンク張ってくれるよ。
<%= link_to nil, :controller => :foo, :action => :index, :only_path => false %>
0857nobodyさん
2009/04/05(日) 23:08:02ID:J2cktlykどうも form の Submit 先の URL が 「/shops/1/items」 みたいに「new」とかがない状態で生成されるからみたいなんだが、これってどうすればよい?
単純に redirect_to してしまうと Validation のエラーメッセージが消えてしまうし・・・。
0858nobodyさん
2009/04/05(日) 23:50:04ID:???そういえばみんなどうやってるのか気になるな。
自分は普段こんな感じ
エラー時はリダイレクトじゃなくてrender :action => アクション名で表示する
class SampleController < ActionController
def new
@shop = Shop.new
end
def create
@shop = Shop.new(params[:shop])
unless @shop.valid?
render :action => :new
return
end
@shop.save
# 次の画面へリダイレクト
end
end
0859nobodyさん
2009/04/06(月) 00:08:52ID:???確認画面入れるといろいろと面倒なんだよね。
IEだと入力画面でAjax使って入れた値が消えてくれたりとか。
自分なら、
render :action => :new and return unless @shop.valid?
と1行で書くかな。
0860nobodyさん
2009/04/06(月) 00:32:13ID:???あ、社内で使う管理画面は確認画面ない場合もあるけど、
実務ではほとんど確認画面あるよ。
その場合は、ボタンに名前(submitのname)付けて対応してる。
new -> confirm -> createという3画面の場合はこうかな。
# 確認画面
def confirm
@shop = Shop.new(params[:shop])
# 入力画面に戻る
if params[:btn_back]
render :action => :new
return
end
# 登録
if params[:btn_next]
# エラー時入力画面へ
render :action => :new and return unless @shop.valid?
return
# 保存して完了画面にリダイレクト
@shop.save
redirect_to :action => :create
end
end
0861nobodyさん
2009/04/06(月) 04:20:31ID:???RESTを厳密に適用していくと、URIは(人間系の)画面表示から独立したものとして扱われていくような気がする
アンカーのON/OFFは人間系の処理なので、URIからどうこうするのは無理が出てくるのではないかと思う
つーか、routeの別名からアクセスしただけでも動かなくならね?的な柔軟性のなさが使えなさすぎるw
リダイレクト時のvalidation結果保持は俺も欲しいのよね・・・
エラーメッセージだけとかデータ量が小規模ならやりようがないこともないけど
リダイレクト時にエラーメッセージをあらかじめレンダリングしておいてflashで渡したりとか、シリアライズしたバリデーション結果をflashで渡したりとか
データ量が多い場合は使えないから、システム全体の統一感が崩れるのでやらない
POSTリダイレクトとかできんかなとも思った
0863nobodyさん
2009/04/06(月) 14:49:19ID:eCZIYZ8I0864nobodyさん
2009/04/06(月) 19:01:32ID:???2.1.x や 2.3.x をいろいろとダウンロードしても
・起動時、セキュリティの警告が出る
・気にせず開いても「Web ページへのナビゲーションは取り消されました」と出る
・ただし目次、キーワード、検索は動く
という感じ。
rubymanjp.chm は問題なく動くのだけど。
0865nobodyさん
2009/04/06(月) 21:25:24ID:???rails:2.1.0
でやってるんだけどto_dateって使えないの?
ググったら1.8.6だとprivateメソッドで定義されて〜
とか書いてたけどto_datetimeやto_timeとかもundefind methodになる…
0866nobodyさん
2009/04/06(月) 22:08:52ID:???irbで試したけど、2.3.2では使えてる(Rubyは1.8.7-p72)。
require 'rubygems'
require 'activesupport'
"20090406".to_date
0867865
2009/04/06(月) 23:47:30ID:???制作済みの社内アプリ全部2.1.0なんだよなぁ…
http://wiki.fdiary.net/rails/?AdjusterExtension-0001
に書いてる
unless @schedules.map {|s| s.schedule_date.to_date }.include?(date)
cell_text << link_to("New", :controller => 'schedule', :action => 'new', :id => @event, :date => date)
end
の部分で詰まってる。
to_dateじゃなくても出来そうな気がするんだけど。
もうちょい頑張って駄目だったら諦めて2.3.2にするよ。
0868nobodyさん
2009/04/07(火) 01:31:04ID:???0869nobodyさん
2009/04/07(火) 06:41:24ID:???0870nobodyさん
2009/04/07(火) 06:55:15ID:???>>868-869のいうようにしたらいいと思うよ。
ActiveSupportのソース見ろって言われても分からないかもしれないから説明すると、
・gem install railsで2.3.2を入れる
・gem serverコマンドを実行してからhttp://localhost:8808にアクセス
・activesupportのrdocを見る
・Methodsのところにメソッド一覧があるからto_dateで検索
ActiveSupport::CoreExtensions::Time::Conversions
ActiveSupport::CoreExtensions::String::Conversions
あたりのto_dateのソースを見る(メソッド名のリンクをクリックするとソースが見れる)
ソースを自分のプロジェクトに使う時は、environment.rbの一番下でとりあえず定義すればいいと思う。
(他にもプラグインにするとか方法あるけど説明が面倒)
↓これはActiveSupport::CoreExtensions::Time::Conversionsのto_dateの例
irbでもコピペすれば動くよ
require 'date'
class Time
def to_date
::Date.new(year, month, day)
end
end
Time.now.to_date
0872nobodyさん
2009/04/07(火) 08:47:39ID:BAwL1OSs0873nobodyさん
2009/04/07(火) 11:19:37ID:???>>864
よくある話で、IEでchmをダウンロードするとそうなるかも。
chm右クリックでのプロパティでセキュリティのチェックをはずすかつけるかするとみられるはずですよ。
0874853
2009/04/07(火) 11:22:41ID:???> WindowsのコマンドプロンプトでUTF-8を表示する方法がある。
MSゴシックで、chcp 65001するやつですよね。
chcp 65001すると、何故か、autotestコマンドが動かないんですよね…。
何も出力されずに終了してしまう。chcp しないとちゃんと動く
うーん…
0875853
2009/04/07(火) 11:33:13ID:???0877nobodyさん
2009/04/07(火) 11:46:08ID:???エクスプローラーから、そのchmファイルのプロパティ出して
セキュリティの項目のブロックの解除、をやる。
ダウンロードしたchmファイルはVistaではこれが必要。
0878nobodyさん
2009/04/07(火) 11:47:50ID:???0879nobodyさん
2009/04/07(火) 11:49:11ID:???なんというタイミングだw
0880853
2009/04/07(火) 12:04:33ID:???直接、
ruby (rubyインスコしたディレクトリ)\bin\autotest
としてautotestを起動したら無事に動かせました。
irbとかは chcp 65001だと日本語入力がそもそも効かずだめですねw
ありがとうございました。
0881853
2009/04/07(火) 12:18:13ID:???日本語が ・・・・・・・ と点で表示されてしまうようです。
また、いろいろ試してみます。それでは失礼します。
0882nobodyさん
2009/04/07(火) 12:29:06ID:???0884nobodyさん
2009/04/07(火) 20:33:42ID:???ありがとうございました。
to_dateはクリアできました。
で、今配列に{Sun, 19 Apr 2009=>[], Fri, 10 Apr 2009=>[],…}
ってな具合に1月分date型で入ってるんだけど
Tue, 07 Apr 2009 ←今日の日付
とinclude?するとfalseになる。
=>[]があるからfalseになるのかな?
include?って完全一致?
0885nobodyさん
2009/04/07(火) 21:01:55ID:???>> days = (('2009-04-01'.to_date)..('2009-04-30'.to_date)).inject({}){|h,d| h.merge(d=>[])}; nil
>> days.include?('2009-4-7'.to_date)
=> true
0886854
2009/04/08(水) 13:05:31ID:yKX835d9これでいけました!レスくださった方々ありがとうございましたm(_ _)m
0887853
2009/04/08(水) 14:17:09ID:???半分あきらめに近いですが、SJISの範囲内ならまあいいということで…
例としては、spec_helper.rb(rspecで共通で読み込むルーチン)に以下を追加します。
require 'kconv'
if ENV['OS'] =~ /Windows/i && ENV['TERM'].nil?
class StdoutHook
def write(str)
# STDOUT.write str.to_s.kconv(Kconv::SJIS, Kconv::UTF8)
STDOUT.write str.to_s.tosjis
end
$> = new
end
end
STDOUT乗っ取り?はMLの過去ログを参考にしましたが、もっといい方法があれば捕捉お願いします。
[ruby-list:45331] Re: Windows コマンドプロンプトで UTF-8を出力するには
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45331
0888853
2009/04/08(水) 14:46:23ID:???---- spec_helper.rb への追加コード ----
# only command prompt at Windows
if ENV['OS'] =~ /Windows/i && ENV['TERM'].nil?
require 'kconv'
unless defined?(STDOUT.old_write_for_cmd)
class << STDOUT
alias :old_write_for_cmd :write
# override STDOUT.write
def write(str)
# old_write_for_cmd str.to_s.kconv(Kconv::SJIS, Kconv::UTF8)
old_write_for_cmd str.to_s.tosjis
end
end
end
end
0889nobodyさん
2009/04/08(水) 16:29:28ID:???現在は File.dirname(__FILE__) + "/../log" とかやっているのですが、
RAILS_ROOT + "/log" とかできるといいなーと。
0890nobodyさん
2009/04/08(水) 17:25:39ID:???rails 以外のふるーいアプリで使いたいのですが、
$ cat test.rb
require 'action_view'
collection_select(...)
$ ruby test.rb
としても undefined method `collection_select' なんて言われます。
ActionView.Helpers.FormOptionsHelper.collection_select(...
にした場合は undefined method `Helpers' for ActionView:Module と。
どうすれば rails 以外から collection_select が使えるようになりますか?
0892nobodyさん
2009/04/08(水) 21:33:38ID:???0893nobodyさん
2009/04/08(水) 22:18:15ID:???お、それは初めて知った。
今試してみたら、Rails.rootはPathnameで返って来るんだね(RAILS_ROOTはString)。
0894nobodyさん
2009/04/09(木) 00:12:20ID:Hon6X4Il現に使われている以上、負け犬の遠吠えに他ならないレスだな
http://www.grails.org/Testimonials
0895853
2009/04/09(木) 01:42:24ID:???文字化けしまくりで、
直すのやっかいそう&そろそろrails関係なさげなので、本スレの方に行ってきます。
0896nobodyさん
2009/04/09(木) 10:06:46ID:8toP/BB5もしいたらバージョンと設定方法教えてもらえないでしょうか・・・。
0897nobodyさん
2009/04/09(木) 10:55:54ID:???その頃gettextは対応してなかったので。
gettext 2.0.0 出たし、いまはどうか分からないな。
0898896
2009/04/10(金) 00:58:01ID:???レスありがとうございます。
やっぱり無理なんですかね・・・。
公式に「無理!」って情報とかってあったりするんでしょうかね・・・。
ちなみに、i18n を使う場合、メールの iso-2022-jp 周りとかってやっぱり自前になるんですか?
0899nobodyさん
2009/04/10(金) 08:58:13ID:4tZH5Ujqでも、iso-2022-jpで送信する方法は検索すればすぐ見つかるから苦労しないと思う。
0900nobodyさん
2009/04/10(金) 10:03:18ID:???RFC 違反だけど、多くのメーラで文字化けしない方法ってあるよね?
その ruby 版のコードってどこにありますか?><
0901nobodyさん
2009/04/10(金) 11:29:23ID:???ttp://code.nanigac.com/source/wiki/view_title/641/%E8%B6%B3%E3%81%97%E7%AE%97
をコピペして勉強してます。
値を入れずにボタンを押すと
undefined method `self_and_descendants_from_active_record' for Add:Class
が出ます。ググると
ttp://jijixi.azito.com/cgi-bin/diary/index.rb?date=20090317#p02
があったので、app/controllers/add_controller.rb に
def self_and_descendants_from_active_record
self_and_descendants_from_active_record
end
としてエイリアス?を用意しても変わらず。どうすれば解決するでしょうか。
0902nobodyさん
2009/04/10(金) 12:17:16ID:???0903nobodyさん
2009/04/10(金) 13:02:54ID:???0904853
2009/04/10(金) 14:04:46ID:???・win32/console/ANSIのせいで、rspecオプションに--colourつけると文字化けする
(というかstdout.writeを上書きできてない)のを修正した。
・UTF-8→SJISの変換の際に、Kconv.tosjis使うと半角カタカナが全角になったり、
MIMEが変換されたりするのを防止するためにnkf使うように修正
---- spec_helper.rb への追加コード ----
require "nkf"
# convert $stdout to sjis for command prompt at Windows
if !defined?($stdout.old_write_for_sjis_filter) &&
RUBY_PLATFORM =~ /win32/ && ENV['TERM'].nil?
class << $stdout
alias :old_write_for_sjis_filter :write
def write(str)
# change to sjis AS IS
old_write_for_sjis_filter NKF.nkf('-sxm0', str.to_s)
end
end
# puts "overrode $stdout.write"
end
何回もうざくてゴメン。たぶんこれで最後です。
0905853
2009/04/10(金) 14:05:38ID:???ぎゃーインデント崩れた。うざいのでそろそろブログの方に書きます
require "nkf"
# convert $stdout to sjis only command prompt at Windows
if !defined?($stdout.old_write_for_sjis_filter) &&
RUBY_PLATFORM =~ /win32/ && ENV['TERM'].nil?
class << $stdout
alias :old_write_for_sjis_filter :write
def write(str)
# change to sjis AS IS
old_write_for_sjis_filter NKF.nkf('-sxm0', str.to_s)
end
end
# puts "overrode $stdout.write"
end
0906nobodyさん
2009/04/10(金) 21:19:22ID:???oeとかがどうやってるか、ちゃんと生メールを見て同じように処理するのが問題が少ない。
基本的に、文字の入力はjisで行わせて無変換で送るようにしたほうが文字化けを回避できる。
最悪、utfで統一でも支障はない。
http://pc12.2ch.net/test/read.cgi/tech/1230466044/
ネットワークプログラミング相談室 Port23
http://pc12.2ch.net/test/read.cgi/tech/1235800707/
ネットワークプログラミング雑談
0907nobodyさん
2009/04/11(土) 00:35:00ID:???たぶんActiveForm使ってる?
2.2から国際化の仕組みが入ってて、そのままだとエラーになるみたい。
自分はActiveFormのコードを修正して対応したよ、以下参考に。。。
active_form.rb
class << self # 51行目くらいの所に下のコード追加
def self_and_descendants_from_active_record
[self]
end
def human_name(*args)
name.humanize
end
end
もしくはここから新しいやつ落としたほうがいいかな・・・。
ttp://github.com/cs/active_form/tree/master
0908nobodyさん
2009/04/11(土) 06:28:01ID:???http://blog.s21g.com/articles/1418
JRuby + RailsもGoogle App Engineで動くんじゃね?
0909nobodyさん
2009/04/11(土) 12:04:21ID:???0911nobodyさん
2009/04/11(土) 13:37:10ID:???0912nobodyさん
2009/04/11(土) 17:57:50ID:???JRuby on Railsも動いたみたいだね。
JRuby on Rails on Google App Engine勝手訳 - ずっと君のターン
http://d.hatena.ne.jp/technohippy/20090408/1239196300
せっかくのActiveRecord(O/Rマッパ)使えないからつらそうだけど
0913nobodyさん
2009/04/12(日) 12:14:31ID:???このキャッシュを特定のアクションでキャッシュさせない事はできるでしょうか。
Ajaxのリクエストがキャッシュされ、
前回実行時の結果がレンダリングされてしまうのを防ぎたいのですが。
0914nobodyさん
2009/04/12(日) 12:42:56ID:???Javascriptで描画した内容が元に戻るってこと?
0915nobodyさん
2009/04/12(日) 15:56:54ID:???0916nobodyさん
2009/04/12(日) 16:59:20ID:???>Rails 2.3からリクエストの結果がキャッシュされるようになりましたが
こういう認識に至ったのはどういう訳で?
0917913
2009/04/12(日) 22:23:27ID:???Rails2.3のリリースノートです。
5.8 Improved Caching Performance
Rails now keeps a per-request local cache of read from the remote
cache stores, cutting down on unnecessary reads and leading to better
site performance. While this work was originally limited to
MemCacheStore, it is available to any remote store than implements
the required methods.
実際にどういう箇所で問題が起きているかというと、モーダルです。
1. モーダルをAjaxで開く
2. モーダル内で何か操作を実行(モーダル内のHTMLがAjaxで書き換えられる)。
3. モーダルを閉じる
4. モーダルを再び開くと、2.の結果がそのまま表示される
という状態です。
こちらとしては、モーダルを開いたら初期状態でモーダルの内容が
表示されて欲しい訳です。
Rails2.2まではその通りの動作でした。
しかし、Rails2.3に上げた所、
モーダル操作後の結果がキャッシュされるようになってしまいました。
4. の再びモーダルを開く際には、モーダルが開いてもコンソールログは出ません。
なのでリクエスト自体がキャッシュされていると思います。
0918913
2009/04/12(日) 22:33:52ID:???少し自分で2.3.2のソースを読んでみようと思います。
お騒がせしました。
0919nobodyさん
2009/04/12(日) 22:42:03ID:???キャッシュされているというのは推測みたいだし。
Parosとかのパーソナルファイアーウォールを使えばリクエストもレスポンスもキャッチできる。
0920nobodyさん
2009/04/12(日) 22:43:11ID:???↓
ローカルプロキシ
間違えた・・・
0921nobodyさん
2009/04/13(月) 01:17:43ID:???remoet cache storeの例にMemCacheStoreが挙げられているから、
localってのはRails Framework側で持ってるcache storeのことなのかな。
0922nobodyさん
2009/04/13(月) 03:33:44ID:Mmo44XLBそもそもモデルクラスでlink_to使おうとするのは邪道でしょうか?
教えていただけると幸いです。
0923nobodyさん
2009/04/13(月) 06:44:46ID:???0924nobodyさん
2009/04/13(月) 07:48:49ID:???タイトルくらい貼ろうぜ
Twitter、Ruby on RailsからScalaへ - スラッシュドット・ジャパン
http://slashdot.jp/developers/09/04/10/0421223.shtml
Twitter は Ruby on Rails で構築されたそのインフラを徐々に Scala に置き換えているそうだ (Technology Review の記事, 本家 /. 記事) 。
Twitter ではフロントエンド、バックエンド共に Ruby on Rails が使われていたが、
最近では大量のメッセージを処理できず「Fail Whale」出現の原因となったりしていた。
このため Twitter の開発チームは代替言語として Scala を採用、少しずつバックエンドや
インフラを Scala に置き換えているそうだ。スイス連邦工科大学ローザンヌ校の
Martin Odersky 氏によって開発された比較的新しいプログラミング言語である Scala は
並列プロセスの処理に長けている点が Twitter に向いており、
また言語としてのフレキシビリティも開発にとっては魅力とのこと。
短所としては、機能も多く、シンタックスも見慣れた感じでは無いため習得が簡単ではないことと、
新しい言語であるため実績がまだ少ないことだという。
それでもTwitterでは多くのテストケースを成功させており、Scala の方がメリットが多いと考えているようだ。
開発チームはフロントエンドは Ruby on Rails のまま、
年内には API リクエストの一連の処理を Scala で行えるようにしたいとしている。
0925nobodyさん
2009/04/13(月) 08:37:28ID:???0926nobodyさん
2009/04/13(月) 10:33:52ID:???あと、計算なら C でもいいし。
フロント部分が Scala/C はありえんけど。
言語は使い分け。
0927nobodyさん
2009/04/13(月) 11:40:40ID:???そんなケースはほとんどないとか言われたな。そういう考えのやつも多いのだろう。
0928nobodyさん
2009/04/13(月) 19:37:14ID:???そのうちscalaフレームワーク公開してくるかもな。
>フロント部分が Scala/C はありえんけど。
CはともかくScalaはrubyと比べても良い言語だし、ありえないことは無い。
0929nobodyさん
2009/04/13(月) 20:45:25ID:???add column after hoge
をやりたいのですが、afterに相当する機能がないっぽいです。クエリべたっと書けばできますが、スマートな方法はないでしょうか?
0930nobodyさん
2009/04/13(月) 21:34:04ID:???特定のDBMSに依存する処理は素直にSQL書くのがスマートだと思うよ。
add column afterがDBMSとして一般的な機能でRailsがサポートしていないなら
プラグインを作る価値はあると思うんだけど、MySQLだけとかだったら
やっぱり直接SQLを書いたほうが誰が見ても分かりやすい。
0931nobodyさん
2009/04/13(月) 22:23:22ID:???抽象化したほうが、DB変わった場合の環境でも手直しは少ないと思うけどな。
0932nobodyさん
2009/04/16(木) 02:18:06ID:???損の方が多い。
0933nobodyさん
2009/04/16(木) 10:11:07ID:???0934nobodyさん
2009/04/16(木) 19:02:58ID:RLOaA3va/aaa/30000/bbb/ccc
というURLにリクエストが来たとき、
30000というidを取得しつつ、
aaaコントローラのbbb_cccアクションが呼ばれるようにしたいのですが、そういったことは可能でしょうか??
0935nobodyさん
2009/04/16(木) 19:42:35ID:???「Rails によるアジャイル〜第二版」を読みながらやっているのですが、さっそくはまった。
1. rails depot
2. (DB作成)
3. nruby script/generate model product
4. rake db:migrate
5. ruby script/generate controller admin
ここまで実行し、本のP.62 の通り、admin_controller.rb において
class AdminController < ApplicationController
scaffold :product
end
と修正して、mongrel を立ち上げてブラウザで
http://localhost:3000/admin にアクセスしたのだけど、
NoMethodError in AdminController#index
と出る。products テーブルの CRUD 画面が出ないのですが、
どうしたらいいのでしょうか。
http://d.hatena.ne.jp/idesaku/20071211/1197386955
にあるように、以下のようにやらないといけないのですか?
ruby script/generate scaffold モデル名 テーブルにあるカラム
すでに 上記 3. と 4. で、空のモデルクラスとテーブルは出来ているので、
AdminController を直すだけには出来ないのでしょうか?
0936nobodyさん
2009/04/16(木) 19:47:12ID:???0937935
2009/04/16(木) 19:57:36ID:???def index を追加し、app/views/admin/index.html.erb を作成すれば、
ブラウザでアクセスすれば、ページが表示されますが、それは CRUD 画面ではなく、
本の第4章の、Hello, Rails と同じですよね。
>>935 で示した hatena と同じように、別モデル(person)を
ruby script/generate scaffold person .....
としたら、自動生成された people_controller.rb には、結構な量のソースが生成されたのだけど、
Rails 2.0 からは、コントローラに scaffold と1行書けばよい、というやり方は廃止になった、ということ?
0938nobodyさん
2009/04/16(木) 21:01:57ID:???Railsは変化が激しいから本と違うバージョンでやらない方がいいと思うよ。
1.2からはスキャフォールド生成の手順からして変わってる。
0939nobodyさん
2009/04/16(木) 21:03:03ID:???0940nobodyさん
2009/04/16(木) 21:37:52ID:???http://yoshitan.blog6.fc2.com/blog-entry-194.html
1.2系とはちょこちょこ変わっているので2.x系の手順でできているなら、些末なところには拘らない方がいいと思う
最悪active_scaffoldでも代替できるしね
0941nobodyさん
2009/04/17(金) 00:36:24ID:???ソースから見せたくないのだ
0942nobodyさん
2009/04/17(金) 00:52:39ID:???0943nobodyさん
2009/04/17(金) 01:01:29ID:???質問してはその後まったくレスのないやつが多いな
0944nobodyさん
2009/04/17(金) 01:55:27ID:???0945935
2009/04/17(金) 02:31:23ID:???レスどうもありがとうございます。
底や別のページを見て、Rails 1.2 系が持っていた scaffold 機能は 2.0 系でなくなったと理解しました。
scaffolding や ActiveScaffold を入れれば 2.0 でも1.2 系のことが出来るそうですが、
ややこしいので、ひとまず 別環境に Rails 1.2.6 を入れて、そっちで勉強することにしました。
もう一つグチ。「Rails によるアジャイル〜」の本で、(正確なページ数は忘れたが) P62 ページの後、
足りないカラム(price カラム)を足す演習がありますが、
Rails 1.2 系だと、rake db:migrate でカラム出すだけで、scaffold の画面をリロードするだけで
増えたカラムが画面に反映されるが、
Rails 2.0 で、>>935 に書いた
$ ruby script/generate scaffold モデル名
を再度実行しても、そもそも Contoroller や views/admin 以下の *.html.erb に
CRUD を行う HTML がべた書きされてしまっているため、増えたカラムが反映されない。
結局テーブルをドロップして、scaffold をやり直した。
どうして Rails 2.0 系は scaffold を廃止したのだろう?
※
といいつつ、よほどイントラ向けでユーザもうるさくない場合以外は、
業務ではscaffold なままの web アプリは使わない、と同僚からツッコミがあった。
0947nobodyさん
2009/04/17(金) 14:31:56ID:???0948nobodyさん
2009/04/17(金) 15:03:11ID:???0949nobodyさん
2009/04/17(金) 21:21:58ID:???0950nobodyさん
2009/04/17(金) 22:57:15ID:???自分もRailsに慣れるとscaffoldは使わない事が多くなってくるので、
scaffoldに固執しないほうがいいと思う。
基本的な流れというか使い方を覚えたら、
最新版のRailsで何か作るほうがいいんじゃないかな。
当然、バージョンが違う事で詰まる部分があるんだけど
ググったり、このスレで聞いたりすればなんとかなる。
0951nobodyさん
2009/04/18(土) 01:28:25ID:???generateで作るやつがあるが、後者は2系でも普通にある。こっちはRESTful
なリソースを公開しようとすると、なんだかんだ言って基本的な骨組みは
scaffoldのものが使えたりする。
0952934
2009/04/19(日) 20:26:48ID:GcnrJHDf0953nobodyさん
2009/04/19(日) 21:43:31ID:???map.connect ':controller/:id/bbb/ccc', :action => 'bbb_ccc'
0954nobodyさん
2009/04/19(日) 21:44:38ID:???map.connect 'aaa/:id/bbb/ccc', :controller => 'aaa', :action => 'bbb_ccc'
のほうがいいか。
レス数が950を超えています。1000を超えると書き込みができなくなります。