Подключение таблиц к корзине покупок - PullRequest
0 голосов
/ 29 декабря 2011

Подключение таблиц к корзине покупок

У меня есть три модели и три таблицы базы данных, которые я хочу подключить к одной корзине, я новичок в рельсах, и у меня возникли некоторые проблемы с этим.Моей первоначальной идеей было создание модели с именем Service в качестве родителя моделей Adverts, Package_of_products и Subscription.А затем подключите его к корзине с помощью Line_item. Уже известно, что я что-то не так делаю. Каждый раз, когда я пытаюсь добавить один из моих сервисов в Line_items, я получаю сообщение

ActiveRecord::RecordNotFound in LineItemsController#create

Couldn't find Service without an ID

app/controllers/line_items_controller.rb:44:in `create'

Уже у меня

def create
  @cart = current_cart
  service = Service.find(params[:service_id])
  @line_item = @cart.line_items.build(:service => service)

respond_to do |format|
  if @line_item.save
    format.html { redirect_to(@line_item.cart, :notice => 'Line item was successfully created.')   
end
* 1008.* У меня есть 4 базы данных и модели моих Line_items
class LineItem < ActiveRecord::Base
belongs_to :service
belongs_to :cart
end

Корзина

class Cart < ActiveRecord::Base
has_many :line_items, :dependent => :destroy
has_many :services,
has_many :adverts, :through => :services
has_many :package_of_products, :through => :services
has_many :subscriptions,:through => :services

Реклама

class Advert < ActiveRecord::Base
  belongs_to :service
end

Подписки

class Subscription < ActiveRecord::Base
  belongs_to :service
end

Package_of_products

class PackageOfProduct < ActiveRecord::Base
  belongs_to :service
end

1 Ответ

2 голосов
/ 29 декабря 2011

хорошо, сначала имя ассоциации belongs_to вместо belong_to, поэтому, пожалуйста, исправьте эту опечатку.

и тогда я думаю, что вам нужно что-то вроде этого:

class Cart  < ActiveRecord ::Base
  has_many :line_items, :dependant => destroy
  has_many :ads, :through => :line_items
  has_many :products, :through => :line_items
  has_many :services, :through => :line_items
end

проверьте has_many :through ассоциацию здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...