Created
December 24, 2008 11:07
-
-
Save shingara/39657 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shingara@slick ~/data/perso/project/merb/oupsnow $ merb -i | |
Loading init file from /mnt/data/home_data/perso/project/merb/oupsnow/config/init.rb | |
Loading /mnt/data/home_data/perso/project/merb/oupsnow/config/environments/development.rb | |
~ Connecting to database... | |
~ Loaded slice 'MerbAuthSlicePassword' ... | |
~ Parent pid: 9989 | |
~ Compiling routes... | |
~ Activating slice 'MerbAuthSlicePassword' ... | |
irb: warn: can't alias context from irb_context. | |
irb(main):001:0> Project.first | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
=> #<Project id=1 name="good project" description=<not loaded>> | |
irb(main):002:0> Project.first.tickets | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" IN (1)) ORDER BY "id" | |
=> [#<Ticket id=1 title="ok" description=<not loaded> project_id=1>] | |
irb(main):003:0> Project.first.tickets.first | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" IN (1)) ORDER BY "id" | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
=> #<Ticket id=1 title="ok" description=<not loaded> project_id=1> | |
irb(main):004:0> Project.first.tickets.first.title = 'ko' | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" IN (1)) ORDER BY "id" | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
=> "ko" | |
irb(main):005:0> Project.first.tickets.first.save | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" IN (1)) ORDER BY "id" | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
=> true | |
irb(main):006:0> Ticket.first | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
=> #<Ticket id=1 title="ok" description=<not loaded> project_id=1> | |
irb(main):007:0> Ticket.first.project | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "name" FROM "projects" WHERE ("id" IN (1)) ORDER BY "id" | |
=> #<Project id=1 name="good project" description=<not loaded>> | |
irb(main):008:0> Ticket.first.project.name = 'bad project' | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "name" FROM "projects" WHERE ("id" IN (1)) ORDER BY "id" | |
=> "bad project" | |
irb(main):009:0> Ticket.first.project.save | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "name" FROM "projects" WHERE ("id" IN (1)) ORDER BY "id" | |
=> true | |
irb(main):010:0> Ticket.first.project | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
~ SELECT "id", "name" FROM "projects" WHERE ("id" IN (1)) ORDER BY "id" | |
=> #<Project id=1 name="good project" description=<not loaded>> | |
irb(main):011:0> t = Ticket.first | |
~ SELECT "id", "title", "project_id" FROM "tickets" ORDER BY "id" LIMIT 1 | |
=> #<Ticket id=1 title="ok" description=<not loaded> project_id=1> | |
irb(main):012:0> t.project.name = "bad project" | |
~ SELECT "id", "name" FROM "projects" WHERE ("id" IN (1)) ORDER BY "id" | |
=> "bad project" | |
irb(main):013:0> t.project | |
=> #<Project id=1 name="bad project" description=<not loaded>> | |
irb(main):014:0> t.project.save | |
=> true | |
irb(main):015:0> p = t.project | |
=> #<Project id=1 name="bad project" description=<not loaded>> | |
irb(main):016:0> p.save | |
=> true | |
irb(main):017:0> Project.first(:name => 'bad project') | |
~ SELECT "id", "name" FROM "projects" WHERE ("name" = 'bad project') ORDER BY "id" LIMIT 1 | |
=> nil | |
irb(main):020:0> p = Project.first | |
~ SELECT "id", "name" FROM "projects" ORDER BY "id" LIMIT 1 | |
=> #<Project id=1 name="good project" description=<not loaded>> | |
irb(main):021:0> p.tickets.first | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" IN (1)) ORDER BY "id" | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
=> #<Ticket id=1 title="ok" description=<not loaded> project_id=1> | |
irb(main):022:0> Ticket.first(:title => 'ko') | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("title" = 'ko') ORDER BY "id" LIMIT 1 | |
=> nil | |
irb(main):023:0> p.tickets.first.title = 'ko' | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
=> "ko" | |
irb(main):024:0> p.tickets.first.save | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("project_id" = 1) ORDER BY "id" LIMIT 1 | |
~ UPDATE "tickets" SET "title" = 'ko' WHERE ("id" = 1) | |
=> true | |
irb(main):025:0> Ticket.first(:title => 'ko') | |
~ SELECT "id", "title", "project_id" FROM "tickets" WHERE ("title" = 'ko') ORDER BY "id" LIMIT 1 | |
=> #<Ticket id=1 title="ko" description=<not loaded> project_id=1> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Project | |
include DataMapper::Resource | |
property :id, Serial | |
property :name, String, :nullable => false, :unique => true | |
property :description, Text | |
has n, :tickets | |
has n, :members | |
has n, :users, :through => :members | |
has n, :functions, :through => :members | |
after :destroy, :destroy_tickets | |
# Destroy all ticket depend on this project | |
# non needing when cascading come | |
def destroy_tickets | |
Ticket.all(:project_id => id).destroy! | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Ticket | |
include DataMapper::Resource | |
property :id, Serial | |
property :title, String, :nullable => false | |
property :description, Text | |
belongs_to :project | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment