Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавить запись из 1 контроллера в 3 таблицы 
:(
    Опции темы
murgancokva
Дата 6.4.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



*СДЕЛАНО (Добавил : Inquiry.create(:question_id=>@question.id.to_i, :respondent_id=>res.id.to_i)),  но не совсем:  теперь не хочет делать EDIT вопросу. может что то с моделями?

#question model
    class Question < ActiveRecord::Base
      has_one :answer, :through => :inquiries #, :dependent => :destroy
      belongs_to :inquiry #, :through => :enquiry
    
      validates_presence_of :text, :message => "ERROR!"
    end

#inquiry model

    class Inquiry < ActiveRecord::Base
      belongs_to :question
      belongs_to :respondent
      has_one    :answer
    end

#respondent

    class Respondent < ActiveRecord::Base
      has_many :inquiries
      has_many :questions, :through => :inquiries
      has_many :answers,   :through => :inquiries
    end

======================================


Привет Такая проблема. Есть 3 таблицы : questions, respondents, inquiries (таблица связей).

  def create
      @question = Question.create(:text => params[:question][:text], :security_token => "test"))

    if success = @question.save
           respondents = Respondent.find(:all)
           respondents.each do |res|
                Inquiry.create(:question_id=>res.question.id.to_i ,:respondent_id=>res.id.to_i)
           end
    end

      render :json => @question.to_ext_json(:success => success)
    end

Это мой контроллер. ВОпрос добавляется, все ок.
 Смысл здесь такой что, если я добавил вопрос, он ищет в таблице respondents все записи, и в зависимости сколько их, добавляет в таблицу inquiries данные. Если к примеру у меня 2 записи в respondents. То таблица inquiries должна выглядить так:

id | qeustiond_id | respondent_id
1  |   1                    |  1
2  |   1                    | 2

Проблема заключается в этой строке кода,:

           respondents = Respondent.find(:all)
           respondents.each do |res|
                Inquiry.create(:question_id=>res.question.id.to_i ,:respondent_id=>res.id.to_i)
           end

как исправить? Сейчас он не добавляет :(

Это сообщение отредактировал(а) murgancokva - 6.4.2011, 11:15
PM MAIL   Вверх
solenko
Дата 6.4.2011, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



замените на create! и посмотрите почему не сохраняет. 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.1990 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.