Ruby on Rails 3 アプリケーションプログラムを読んで

on Squeezeとwheezy

環境作り

sqliteに関しては普通に入れれば3.7.3が入る。書籍では3.7.5推奨だがまあ問題ない範囲でしょう。

gemであるがrubygemsパッケージは1.8用なので必要無い。ruby1.9.1-fullを入れるとgemは付いてくる。

で、普通にgem installとすると権限が足らなかったのでsudoつけた

% sudo gem install rails 

/var/lib/gems/1.8/bin/rails という所に3.2.3が入ったらしい。

% /var/lib/gems/1.8/bin/rails -v
Rails 3.2.3

1.8なのがアレだが、ともあれ入ったという感じ。なんか問題あれば1.9に切り替えていかないといかんのかなあ。とり急ぎ加工してパスを通すなど。

さらに、

% sudo gem install sqlite3 

としてsqlite3ドライバを入れようとするとコケたので、libsqlite3-devパッケージを入れたのちinstallした。

rails serverとかするとWEBrickが起動するはず、なのだが、ExecJSがどうのこうのいわれた場合はGemfileに

gem 'therubyracer'

とか書いておいて「bundle install」などとするなど

2.2

読了

普通にプロジェクトスケルトンをコマンドで作ったり、試験用のサーバを作ったりという所 ハマったのはrouterのルールを有効化させる所くらい。

render :text => 'こんにちわ, 世界!'

とかの構文は今のところまったくわからないw

2.3

読了。viewに変数を渡したるするアレ。 しかしながらレイアウト(app/views/layouts/application.html.erb)

<!DOCTYPE html>
<html>
<head>
  <title>Railbook</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%#= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>

とかしないと

js: "/tmp/execjs20120331-584-va3ya4-0.js", line 508: missing } after function body
js: });
js: ..^

  (in /data/www/rails/railbook/app/assets/javascripts/hello.js.coffee)):
    3: <head>

とかで落ちた。何が悪いのかさっぱりわからんが

2.4モデルの基本

いよいよDB接続である。 DBの設定はconfig/database.yml productionとかtestとかdevelopmentとかいろいろと見慣れたセクションがあるぞ、と。

ここで本書にあるように以下のようなコマンドをぶちこんでみた。

% rails generate model book isbn:string title:string price:integer publish:string published:date cd:boolearn
      invoke  active_record
      create    db/migrate/20120402022233_create_books.rb
      create    app/models/book.rb
      invoke    test_unit
      create      test/unit/book_test.rb
      create      test/fixtures/books.yml

今はバージョン管理していないので何がかわったかわからんのだが、いろいろと出来たっぽい。コマンド打ちまちがえちゃった時はどーすんだろなというのが疑問。

で、migrate

% rake db:migrate                                                12-04-02 11:41
==  CreateBooks: migrating ====================================================
-- create_table(:books)
rake aborted!
An error has occurred, this and all later migrations canceled:

undefined method `boolearn' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x7f3d166b8be0>

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

んー、落ちられてしまうと手も出ないか。。。

railsapp.txt · 最終更新: 2012/04/23 01:33 by admin
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0