2012-04-25 3 views
0

Так Вот что я пытаюсь сделать:Пользовательский поиск поля по рельсам 3 форма

Я хочу поле, которое является текст на основе, «купон код»

в вложенном виде.

Так в основном f.text_field :coupon

Но это значение должно быть отношение к элементу в coupons таблице, но не по идентификатору.

Купон таблица может выглядеть

|ID| CouponCode | 
+--+------------+ 
|1 | a89sd9asda | 
+--+------------+ 

и моя главная таблица будет выглядеть

|ID| OrderTitle | Coupon | 
+--+------------+------------+ 
|1 | sdfsdfsdfd | a89sd9asda | 
+--+------------+------------+ 

Есть ли способ в рельсах, чтобы связать эти два через has_one и использовать не поле ID?

+0

Если в таблице ваших купонов есть только идентификатор и код, я действительно не понимаю, почему у вас есть эта таблица. Просто используйте CouponCode в таблице Order. – damienbrz

+0

Да, он должен соответствовать одному из купонов в базе данных купонного кода tho. Купоны предварительно сгенерированы, распределены, мне нужно сопоставить, что только один заказ может иметь один купон. –

ответ

1

Чтобы ответить на ваш вопрос:

class Order < ActiveRecord::Base 
    has_one :coupon_code, :foreign_key => 'CouponCode' 
end 

class CouponCode < ActiveRecord::Base 
    belongs_to :order, :foreign_key => 'CouponCode' 
end  

Однако, я согласен с Damien: это выглядит немного от проектных подходов общего дб.

+0

Мне нужно установить: primary_key => «Купон» тоже? так как он не будет использовать Coupon_id? –

Смежные вопросы