約 4,556,863 件
https://w.atwiki.jp/sami1127/pages/19.html
scaffoldで作成されるもの C \rails\rjs_tutorial ruby script/generate scaffold category name string descrip tion text exists app/models/ exists app/controllers/ exists app/helpers/ create app/views/categories create app/views/layouts/ exists test/functional/ create test/unit/ exists public/stylesheets/ create app/views/categories/index.html.erb create app/views/categories/show.html.erb create app/views/categories/new.html.erb create app/views/categories/edit.html.erb create app/views/layouts/categories.html.erb identical public/stylesheets/scaffold.css create app/controllers/categories_controller.rb identical test/functional/categories_controller_test.rb create app/helpers/categories_helper.rb route map.resources categories dependency model exists app/models/ exists test/unit/ create test/fixtures/ create app/models/category.rb create test/unit/category_test.rb create test/fixtures/categories.yml exists db/migrate create db/migrate/20090123065742_create_categories.rb
https://w.atwiki.jp/kurails/pages/15.html
[Rails3.0+] プロジェクトの作成 プロジェクト作成したいディレクトリまでcdコマンドを使って移動する ※プロジェクト名には複数形とか,プログラム言語の予約語とかは使わない方がいい rails new (プロジェクト名) ※今後,下記の通り読み替えて下さい. RAILS_ROOT - プロジェクトを作ったディレクトリです.appやconfigがあるところ データベース,MVCの作成 rails g scaffold (作りたいテーブルの名前を全部小文字・単数形) (挿入したいカラムの名前と型) 例 rails g scaffold user user_name string age integer user_note text Rails3.0+では,1.2と違い,scaffoldがテーブル生成のマイグレーションファイルやMVCを全部作ってくれます. 実際にデータベースに反映する rake db migrate サーバ起動 RAILS_ROOTで, rails s http //localhost 3000にアクセス ちゃんとみれたら http //localhost 3000/(データベースの名前を全部小文字・複数形で)
https://w.atwiki.jp/rubyonrails3/pages/13.html
rails generate scaffold admin/media name string url string
https://w.atwiki.jp/kurails/pages/10.html
用意するもの Ruby 1.8 Rails1.2.3 MySQL5.0.27 [Rails1.2] プロジェクトの作成 プロジェクト作成したいディレクトリまでcdコマンドを使って移動する ※プロジェクト名には複数形とか,プログラム言語の予約語とかは使わない方がいい rails (プロジェクト名) ※今後,下記の通り読み替えて下さい. RAILS_ROOT - プロジェクトを作ったディレクトリです.appやconfigがあるところ データベースの作成 RAILS_ROOT/config/database.ymlの, 「develpment 」以下の項目を参照 database XXXXXXXXX_develpment コマンドプロンプトを開いて, mysql -u (ユーザ名) -p パスワードを打ち込む mysql create database XXXXXXXXX_develpment; mysql quit モデルの作成 テーブルの名前と,カラムの名前,型を指定します. ruby script/generate model (作りたいテーブルの名前を全部小文字・単数形) (挿入したいカラムの名前と型) 例 ruby script/generate model user user_name string age integer user_note text 実際にデータベースに反映する rake db migrate Railsに入出力のインタフェース(とロジック)を作ってもらう cd (プロジェクト名) ruby script\generate scaffold (作りたいテーブルの名前を先頭大文字・単数形で) 例 ruby script\generate scaffold User RAILS_ROOT/app/controllersに [Rails1.2] (テーブル名)s_controller.rb があるか確認 RAILS_ROOTで, ruby script/server http //localhost 3000にアクセス ちゃんとみれたら http //localhost 3000/(データベースの名前を全部小文字・複数形で)
https://w.atwiki.jp/maimuzo/pages/17.html
プラグイン名 ActiveScaffoldプラグイン このプラグインができること 標準のScaffoldのように、コントローラーで使用を宣言するだけで、実用レベルのScaffoldが使えるようになる。 AJAX対応 関連するテーブルとのリレーションを考慮 ローカライズ対応 コントローラーにて設定値を書き換えるだけで、動作内容を変更可能 対象バージョン 1.2系 ちょー簡単な使い方 ./script/plugin install http //activescaffold.googlecode.com/svn/tags/active_scaffold でインストールして、ビューかレイアウトに %= javascript_include_tag defaults % %= active_scaffold_includes % を記入して、適当なコントローラーに class UserController ApplicationController active_scaffold user end とすると、現在のモデルの構造を元にScaffoldを表示。 公式ページ http //activescaffold.com/ ※ここのデモは、ソースと生成された画面を対比して見れるので、英語読まなくても大体やってることは掴める。 日本語解説ページ 優しいRailsの育て方 ActiveScaffold プラグイン 外国語解説ページ 今のところ必要ないかも(日本語で情報が足りる) のうはう 使いこなせれば、かなり効率のあがるこのプラグイン。どうやったら効率的に覚えれるか。について。 とりあえず、優しいRailsの育て方 ActiveScaffold プラグインを読んで、できることを理解すべし 本家のDemoを見て、実際の流れを確認すべし ここまできたら、大体できる事となんとなく作る事は出来ると思うけど、やはり細かい部分をカスタマイズしたくなるもの。そういうときは・・・ 本家のDocumentationのセクションを熟読すべし。特にnestやaction_link関係。 nestやaction_link関係ではやりたいことが実現出来ない事も多い。最終的にはviewのカスタマイズが必要なので、DocumentationセクションのForm overridesを読んでから、実際のインストールたソースの vendor/plugins/active_scaffold/frontends/default/views/ の中の構造を理解し、必要なファイルをapp/view/(コントローラー名)/にコピーしてからカスタマイズする。 とかってやると、結構幸せになれるかもしれない。 コメント 名前
https://w.atwiki.jp/rubyocho/pages/22.html
scaffold 意味:工事現場などの「足場」 アプリケーションの土台
https://w.atwiki.jp/eyes_33/pages/15.html
というわけで、Railsも3になったんで、そろそろ勉強するかと、「Ruby on Rails 3 アプリケーションプログラミング」を買ってきて始めてみた。 いや、結構、これいいよ。みんな買うといい! で、以下は、その本で書いてあることをやった時のメモね。 環境 これは自分の環境ね。本とはちょっと違うので、ご注意を Ruby1.9.2:これ、結構重要。1.9.2からエンコードが強制に変わってるし。 むー、ruby1.9からは、ファイルのエンコーディングを「絶対に」指定しないとNGになるらしい。 なので、ファイルの頭に「# encoding utf-8」の記述が必須。微妙! Rails3.1.0:ここも、2からだいぶ変わったらしい。 実行環境は、WindowsXP Pro SP3 以下、やってみた時のメモね! 導入と基本 Railsの基本 モデルとかDBとか DBの値取得や表示、共通定数定義とか Scaffolding(スキャフィールディング) Scaffoldingで使われるテンプレートのコピーは、以下のコマンドで!(なんだけど、できんかったw P288参照)→エラーは出てもコピーはできるっぽい rake rails templates copy Scaffoldは便利だけど、日本語化を考えると固定でのカラム名とか出ちゃって微妙なんで、Scaffoldingの日本語化とかにいろいろ書いてみたよ! データベースの準備 開発編 ビューの開発ビュー側(erb)では、以下のビューヘルパーをどう使うかが重要。 form関連のビューヘルパー その他のビューヘルパー ビューヘルパーの自作 レイアウトと部分テンプレートで、共通レイアウトとか部分テンプレートを作るのねー モデルの開発モデル(と言っても、基本はActiveRecordの話ね)は、こんな感じでイケルのか? モデルの参照系 モデルの更新系 モデルのバリデート アソシエーション:これで、複数テーブルの処理が簡単に! コールバック マイグレーション コントローラの開発要するに、Railsではコントローラって、リクエスト/レスポンスを処理するところなんだねー リクエスト レスポンス HTML以外のレスポンス セッション/クッキーなど フィルタ(Basic認証&フォーム認証あり) Applicationの共通コントローラ ログ出力 書き方は、こんな感じ logger.debug( デバッグログを出すぜ! ) logger.debug( ハッシュだとこんな感じ? + hash.inspect ) レベル変更は、コンフィグファイル(config/environments/development.rbなど)で、以下を指定 config.log_level = debug 設定ファイル「config/application.rb」で以下を設定すると、リクエストのログ上などで[FILTERED]になるらしい config.filter_parameters += [ password] ログフィルタは、正規表現とかも使える 開発ツール Eclipseベースの「Aptana Studio」がお勧めみたいだけど…。使ってないから知らんw この辺を参考に、そのうち入れてみるか…(http //freesoftdownload.1-yo.com/webmake/aptana-studio.html) 結構いいよ、Aptana!ただ、更新したら動かなくなっちまった...。とりあえず、以下のコマンドでclean起動したら動いた? cd "C \Program Files\Aptana\Aptana Studio 3" "C \Program Files\Aptana\Aptana Studio 3\AptanaStudio3.exe" -clean 解説編 ルーティング Railsの基本は、RESTful! テスト メール送信 キャッシュ機能 国際化対応 Scaffoldingの日本語化とかでやったけど、i18n_generators を使えばモデルの日本語翻訳が一発だ!すげー! Ajax開発 Railsのプラグイン Apache+Passenger 自分でもいろいろやってみた! Ruby on Rails 3 アプリケーションプログラミングの中には無いけど、いろいろやってみた時のメモも一緒に書いておこうかな Scaffold系 カラム名に、「class」とかは使えないので注意! Scaffoldingの日本語化とか モデル系 scopeでallでの全件取得時にソートを指定するには、こんな感じで scope all, order( project_no ) default_scopeでやっちゃうと、「必ず」指定されちゃうんだなー。デフォルトの解除ってできないのかな? アソシエーションのbelongs_to時にクラス名を指定するには、こんな感じ belongs_to owner_member, class_name = "Member" これだと、Memberクラスにowner_member_idで関連づけになる なんで、上記をListクラスに書くと、View側でnameを取るにはこんな感じ % @lists.each do |list| % %= list.owner_member.name % % end % devise うーん、deviseの2になったら、confirmが動かなくなっちまったよー。 でも、app/views/devise/mailer/confirmation_instructions.html.erbのlink_toをこうすれば一応、動いた。 %= link_to regist , user_confirmation_url( confirmation_token = @resource.confirmation_token) % 要するに、この場合はモデルuser用にurlが生成されてるっぽいのと、前にあった第一パラメータの@resourceが無くなったことかな? ただ、変なのは、文字数が多い?と、メールのContent-Transfer-Encodingが変わっちゃって、URLがおかしくなるのはまいった…。 あー、そっか。URLとかがおかしくなるのは、HTMLだからなんだ!なんで、 ここ みたいに、ファイル名を*.text.erbにすれば… →あれ、駄目だw。deviseの元のHTMLファイルが使われちゃうなー。もちょっと調査要! 管理用にtypusを入れてみよう! がーん、Rails4だとだめっぽい まずは、Gemfileに以下の記述を追加 gem typus で、インストール&生成 bundle install rails generate typus 後は、普通にWebサーバを起動すれば...。 おー、http //localhost 3000/admin にアクセスすれば、管理画面として使えるね! 各テーブルが一覧で表示されて、クリックすれば全レコード表示になる、と。 で、各レコードの下に「Edit / Trash 」ってあるから、そこで変更&削除ができて、「Add New」で登録ね。 あー、ただ、IDの表示/入力はできないのかー。その辺は設定とかでなんとかなるのかな? とはいえ、簡単にメンテするだけなら、これで十分だね! あ、そのままだと管理画面が「認証なし」になっちゃうのかw ということで、Typusによる管理画面の実装を元にmigrateすれば、いいみたい rails generate typus migration rake db migrate これで、admin_usersってテーブルに管理用のユーザ情報を登録する形にできるんだね。簡単! ただ、管理者一人もいないと自動で初期管理者を登録する画面に遷移するから、スグ登録しないとまずいよ! モデルを作り直したら、typusでエラーが出るようになっちゃった。そりゃそうか。ということで、再構築するにはこんな感じ。 以下のファイルを削除 app/controllers/admin/* config/initializers/typus_* config/typus/* で、再構築 rails generate typus rails destroy typusじゃだめだったんだよなー。なんでだろ? Asset Pipelineって何じゃ? Rails3.1から入った機能で、要するにJavaScriptやCSSを圧縮して、リクエストの負荷を減らす仕組みっぽい。 ここが詳しくて、判りやすいな Asset Pipelineを理解する:http //ja.asciicasts.com/episodes/279-understanding-the-asset-pipeline Railsでネストしたモデルのformを使う fields_for, accepts_nested_attributes_for http //blog.livedoor.jp/satoyansoft/archives/65237464.html 要するに、Memberに複数のAddressが紐づいているときに、すごい便利! やり方は、こんな感じ Memberモデルに、accepts_nested_attributes_for で定義 accepts_nested_attributes_for address, allow_destroy = true で、Viewにこんな感じで書くとOK % form_for @member do |f| % email %= f.text_field email % br/ % f.fields_for address do |f2| % 都道府県 %= f2.text_fieldf prefecture % % end % % end % これ書くと、MemberのDestroy時に自動でAddressも削除されるし、すげーな! ただ、これ使うとFunctional Testで「No route matches」だ出ちゃって、動かんなー。 おや?これで、Memberのコントローラテストはイケルな?(http //stackoverflow.com/questions/11366981/functional-testing-wont-work-with-nested-params) get index, member_id = メンバーのID post new, member_id = メンバーのID, address = {アドレスの各項目} モデルでリクエストの内容を参照したい! なんかいつも忘れてしまうのでメモ モデル側(例:list.rb) attr_accessor request コントローラ側(例:lists_controller.rb) @list.request = request jQuery-UIのdatepicckerを使ってみよう! まあ、結局、これでオッケーだった。 Rails3.2でjQuery UIのdatepickerを使うときのあれこれまとめ jQuery]jQuery UI datepickerのメモ んだけど、とにかく画像の置き場でトラぶった…。 Herokuだと[assets/images/jquery-ui/images]に画像を置いたら、jquery-uiが無視された?Assetのせいかな? 仕方がないから、今回は全部[images/images]に画像を置いたら動いたけど…、本当はどーすりゃいいんだろ? RSpecで楽しいテストをやってみよう! まずは設定など Gemファイルにこれを追加 group test do gem "rspec" gem "rspec-rails" end bundle installを実行 $ rails g rspec install create .rspec create spec create spec/spec_helper.rb で、テストファイルを作成 $ rails g rspec model list create spec/models/list_spec.rb ※コントローラーはこんな感じで(複数形に注意!) $ rails g rspec controller lists create spec/controllers/lists_controller_spec.rb お次ぎはテストの書き方とか この場合は、Listクラスのallメソッドの正常系で、allがnilじゃないことを確認してるね require spec_helper describe List do describe all do context normal case do it not null do List.all.should_not be_nil end end end end この「should ==」ってば、「should eql()」とも書けるらしいけど、うーん、微妙。。。 まあ、細かいメソッドに関してはちょっと古いけど、RSpecの標準Matcher一覧表とか本家を見て確認ですな。 fixturesもあるんだね。よかったー まずは、fixturesファイルを以下に配置して $RAILS_APP/spec/fixtures/モデル名の複数形.yml こんな感じで中身を書いておいて、 list1 id 1 要素名 内容 list2 id 2 要素名 内容 後は、テスト時にこんな感じで呼び出すと、 fixtures フィクスチャファイルの名前のシンボル もしくは fixtures all テストの中でこんな感じで使えるよー。 lists( list1) ER図を作ろう へー、こんなんでER図が生成できるんだね。すごい! Rails - ER図を作成するアプリケーション erd 他の参考サイト Rails3のパッケージ管理ツール、Bundlerについて調べた Ruby on Rails 3.0 日記 ここだと、インストールからテンプレート作成、モデル&コントローラ作成から、アプリ開発までの開設あり! しかも、パッケージとしてページング(will_paginate)やユーザ認証(devise)の使い方や、ユーザ認証の日本語化なんかもあって、いいかも! Ruby on Railsの管理者画面を生成する「Typus」 rails 管理画面を簡単に作ってくれるtypusをやってみた:お、DB認証とかもあるっぽい typusのフォームでファイル参照とコンボボックス WindowsでRuby on Railsの開発環境を作るメモ ruby/rails/RailsGuidesをゆっくり和訳してみたよ/Active Record Associations ここは素晴らしいレベルで、見やすい! devise でメールアドレス以外を認証に使う macを買って、今すぐherokuでruby1.9.3 + rails3.2しよう! Redmine が ruby 1.9 に未対応なので ChiliProject を Heroku で試してみよう Devise を導入して Facebook 認証との統合をやってみる 大事なこととして、assets のコンパイルが自動でなくなるので、デプロイ時には「rake assets precompile」 を実行する。 でも、Herokuだと自動で実行されてるっぽいな。 Rails3の全体的な例外ハンドル coffee scriptのお勉強 つうか、普通にドットインストールがすばらしくてびっくりした! Railsの自動テスト(RSpecでModelのテスト編) deviseを使ったコントローラのテスト -
https://w.atwiki.jp/eyes_33/pages/62.html
Rails3のScaffoldはとっても便利なんだけど、日本語化とか始めると、indexやshowでカラム名が固定文字で生成されたりして微妙なんで、いろいろやってみたよ 概要としては、こんな流れかな? まず、Scaffoldを日本語化してくれる「i18n_generators」を導入 この「i18n_generators」て、モデル名や各項目名を 自動で翻訳 してくれる、すごすぎるツールだ! Scaffoldの、元テンプレート&コントローラを修正 普通にScaffoldを使ってモデル生成&マイグレート 最後に、i18n_generatorsを使って日本語化して完了! ただ、この辺のテンプレート修正とかって、本質的にはRailsでやるべきのような気が…。今後はどうなるかな? i18n_generatorsを導入 これは、普通にgemで入れて、設定を変更するだけ。 gem installコマンドはこうね gem install i18n_generators で、ファイル(config/application.rb)を、以下のように修正 変更前 # config.i18n.default_locale = de 変更後 config.i18n.default_locale = ja 後は、日本語のリソースファイルを配置 取得先:https //github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml 配置場所:config/locales/ja.yml Scaffoldのテンプレート&コントローラを修正 まずは、Scaffoldの元ファイルをコピーする rake rails templates copy で、テンプレート修正 なんでか知らんが、indexとshowは「label」を使わずに直にカラム名を使って出力してるから日本語化されんので、以下の修正を行うよ! lib/templates/erb/scaffold/index.html.erb を以下のように修正 修正前 % attributes.each do |attribute| -% th %= attribute.human_name % /th % end -% 修正後 % attributes.each do |attribute| -% th %%= label %= singular_table_name % , %= attribute.name % % /th % end -% 実際のコードは、こんな感じに出力されるよ。(例は、Memberモデルのnameの場合ね) th %= label member, name % /th lib/templates/erb/scaffold/show.html.erb を以下のように修正 修正前 b %= attribute.human_name % /b 修正後 b %%= label %= singular_table_name % , %= attribute.name % % /b 実際のコードは、こんな感じに出力されるよ。(例は、Memberモデルのnameの場合ね) b %= label member, name % /b で、コントローラもちょっとだけ修正 テンプレート側のindexで修正したトコで必要なインスタンスもいるから、ちょっと追加 lib/templates/rails/scaffold_controller/controller.rb のindexメソッドに以下を追加 def index @ %= singular_table_name % = %= orm_class.build(class_name) % 実際のコードは、こんな感じに出力されるよ。(例は、Memberモデルのnameの場合ね) def index @members = Member.new とはいえ、もうちょっとテンプレートの記述を工夫したらコレ、いらないような気が…。うーん、微妙…。 で、細かいところも好きなように修正できるよ lib/templates/erb/scaffold 以下の各テンプレートで、適当に日本語にしたい箇所を修正 ココでの修正が、今後のScaffold時に展開されるので、そのつもりで修正を。 とりあえず、修正なしでも動くのは動く Scaffold実行 普通にScaffoldを使ってモデル生成&マイグレートするだけ 日本語辞書生成 最後に、i18n_generatorsを使って日本語化して完了! 日本語化は、以下のコマンドを打つだけ。 rails g i18n ja ただ、ネットに繋がってないと、「翻訳」は動かないので、注意 しかし…、さすがにあんまりちゃんと翻訳されないなw で、自動翻訳されたモデル用の日本語辞書が[config/locales/translation_ja.yml]に生成されるので、気に入らない所を修正 後は、Scaffoldの画面のindexとshowが翻訳されていれば、Scaffoldの日本語化成功ね!
https://w.atwiki.jp/gonjoukk/pages/9.html
Ruby on Rails ドットインストールでの学習メモ ※MVCアーキテクチャ Model データ View 画面 Controller ModelとViewをとりもつもの 仮想マシンにログインし、ホームディレクトリで次を行う。 railsで、新規にアプリケーションの環境を作る 必要なディレクトリとファイルが作られ、必要なライブラリがインストールされる $ rails new myapp myappは、アプリケーション名(任意に設定する) myapp というディレクトリが作られ、その配下にいろんなファイルが作られる run bundle install と表示があれば、必要なライブラリがインストールされている 作成された アプリケーション名のディレクトリに移動 $ cd myapp railsサーバーを立ち上げる $ rails server (略して、 $ rails s でもいい) 環境によっては、次のエラーになる場合がある Could not find a JavaScript runtime その場合、vi Gemfile で以下の箇所に編集する # gem therubyracer , platforms ruby → gem therubyracer , platforms ruby コメントを外す そして、再度bundleインストールを行う $ bundle install 改めて、railsサーバーを立ち上げる $ rails s 以下の例では、WEBrick 1.3.1 というwebサーバが、port=3000 で立ち上がった [2014-08-15 09 40 24] INFO WEBrick 1.3.1 [2014-08-15 09 40 24] INFO ruby 2.1.2 (2014-05-08) [x86_64-linux] [2014-08-15 09 40 24] INFO WEBrick HTTPServer#start pid=3894 port=3000 webブラウザからサーバが立ち上がっていることを確認する URL= hostip(または hostname) 3000 例:192.168.33.56 3000 ◎ 作成方法1 scaffold を使って、railsアプリケーションを作ってみる $ rails generate scaffold User name string score integer $ rake db migrate railsサーバーを立ち上げる $ rails s ◎ 作成方法2 scaffold を使わず、railsアプリケーションを作ってみる $ rails new taskapp --skip-bundle $ cd taskapp
https://w.atwiki.jp/jaw555/pages/27.html
gemのバージョンアップ activescaffoldを使おうとrails2.3にしたものの、このためにはRailsGemのバージョンが1.3.2以上であることが求められる。 script/plugin install git //github.com/activescaffold/active_scaffold.git -r rails-2.3 けど、 # gem update --system としても、nothing to update となってしまう。これはバグらしい。 この場合の対処方法。 # gem install rubygems-update # update-rubygems しかしこれだと以下のようなエラーがでて、バージョンは元の 1.2.0のまま変わらない。。。 # gem install rubygems-update Successfully installed rubygems-update-1.3.7 1 gem installed Installing ri documentation for rubygems-update-1.3.7... Installing RDoc documentation for rubygems-update-1.3.7... Could not find main page README Could not find main page README Could not find main page README Could not find main page README この場合は、インストするバージョンを指定すれば良い模様。 # gem install rubygems-update -v 1.3.2 Successfully installed rubygems-update-1.3.2 1 gem installed # update_rubygems activescaffoldのpluginをいざインストール $ script/plugin install git //github.com/activescaffold/active_scaffold.git -r rails-2.3 Initialized empty Git repository in .git/ github.com[0 207.97.227.239] errno=Connection timed out fatal unable to connect a socket (Connection timed out) どうやらホストへの接続が失敗しているようだ。恐らくはproxyサーバが使われていないことによるエラーか? ★今ここ