associations book-tag-publisher-language
This commit is contained in:
parent
2bd4a9d742
commit
5ee2ea8e48
@ -5,6 +5,18 @@ class Book < ActiveRecord::Base
|
||||
join_table: "books_authors_link",
|
||||
foreign_key: "book",
|
||||
association_foreign_key: "author"
|
||||
has_and_belongs_to_many :tags,
|
||||
join_table: "books_tags_link",
|
||||
foreign_key: "book",
|
||||
association_foreign_key: "tag"
|
||||
has_and_belongs_to_many :languages,
|
||||
join_table: "books_languages_link",
|
||||
foreign_key: "book",
|
||||
association_foreign_key: "lang_code"
|
||||
|
||||
has_one :book_publisher_link, foreign_key: "book"
|
||||
has_one :publisher, through: :book_publisher_link
|
||||
|
||||
has_one :book_serie_link, foreign_key: "book"
|
||||
has_one :serie, through: :book_serie_link
|
||||
end
|
||||
|
8
app/models/book_publisher_link.rb
Normal file
8
app/models/book_publisher_link.rb
Normal file
@ -0,0 +1,8 @@
|
||||
class BookPublisherLink < ActiveRecord::Base
|
||||
establish_connection Rails.configuration.database_configuration["calibre"]
|
||||
|
||||
self.table_name = "books_publishers_link"
|
||||
|
||||
belongs_to :book, foreign_key: "book"
|
||||
belongs_to :publisher, foreign_key: "publisher"
|
||||
end
|
8
app/models/language.rb
Normal file
8
app/models/language.rb
Normal file
@ -0,0 +1,8 @@
|
||||
class Language < ActiveRecord::Base
|
||||
establish_connection Rails.configuration.database_configuration["calibre"]
|
||||
|
||||
has_and_belongs_to_many :books,
|
||||
join_table: "books_languages_link",
|
||||
foreign_key: "lang_code",
|
||||
association_foreign_key: "book"
|
||||
end
|
6
app/models/publisher.rb
Normal file
6
app/models/publisher.rb
Normal file
@ -0,0 +1,6 @@
|
||||
class Publisher < ActiveRecord::Base
|
||||
establish_connection Rails.configuration.database_configuration["calibre"]
|
||||
|
||||
has_many :book_publisher_link, foreign_key: "publishers"
|
||||
has_many :books, through: :book_publisher_link
|
||||
end
|
8
app/models/tag.rb
Normal file
8
app/models/tag.rb
Normal file
@ -0,0 +1,8 @@
|
||||
class Tag < ActiveRecord::Base
|
||||
establish_connection Rails.configuration.database_configuration["calibre"]
|
||||
|
||||
has_and_belongs_to_many :books,
|
||||
join_table: "books_tags_link",
|
||||
foreign_key: "tag",
|
||||
association_foreign_key: "book"
|
||||
end
|
@ -4,4 +4,15 @@
|
||||
<li><%= author.name %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<p>Serie: <%= @book.serie.name %>
|
||||
<ul>
|
||||
<% @book.languages.each do |language| %>
|
||||
<li><%= language.lang_code %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<ul>
|
||||
<% @book.tags.each do |tag| %>
|
||||
<li><%= tag.name %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<p>Serie: <%= @book.serie.name %></p>
|
||||
<p>Publisher: <%= @book.publisher.name %></p>
|
||||
|
11
test/fixtures/book_language_links.yml
vendored
Normal file
11
test/fixtures/book_language_links.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
11
test/fixtures/book_publisher_links.yml
vendored
Normal file
11
test/fixtures/book_publisher_links.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
11
test/fixtures/book_tag_links.yml
vendored
Normal file
11
test/fixtures/book_tag_links.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
11
test/fixtures/languages.yml
vendored
Normal file
11
test/fixtures/languages.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
11
test/fixtures/publishers.yml
vendored
Normal file
11
test/fixtures/publishers.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
11
test/fixtures/tags.yml
vendored
Normal file
11
test/fixtures/tags.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
# This model initially had no columns defined. If you add columns to the
|
||||
# model remove the '{}' from the fixture names and add the columns immediately
|
||||
# below each fixture, per the syntax in the comments below
|
||||
#
|
||||
one: {}
|
||||
# column: value
|
||||
#
|
||||
two: {}
|
||||
# column: value
|
7
test/models/book_language_link_test.rb
Normal file
7
test/models/book_language_link_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class BookLanguageLinkTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
7
test/models/book_publisher_link_test.rb
Normal file
7
test/models/book_publisher_link_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class BookPublisherLinkTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
7
test/models/book_tag_link_test.rb
Normal file
7
test/models/book_tag_link_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class BookTagLinkTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
7
test/models/language_test.rb
Normal file
7
test/models/language_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class LanguageTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
7
test/models/publisher_test.rb
Normal file
7
test/models/publisher_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class PublisherTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
7
test/models/tag_test.rb
Normal file
7
test/models/tag_test.rb
Normal file
@ -0,0 +1,7 @@
|
||||
require 'test_helper'
|
||||
|
||||
class TagTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
Loading…
Reference in New Issue
Block a user