2013-09-12 2 views
0

У меня вопрос о сохранении данных в базе данных. Это вопрос новичков. Я только начал изучать Ruby on Rails. У меня есть пользователь, врач и назначение в моей базе данных.Rails - Сохранение данных в базе данных

class User < ActiveRecord::Base 
has_many :appointments 
has_many :doctors, :through => :appointments 
end 

class Doctor < ActiveRecord::Base 
has_many :appointments 
has_many :users, :through => :appointments 
end 

class Appointment < ActiveRecord::Base 
belongs_to :doctor 
belongs_to :user 
end 

У меня есть следующий контроллер:

class AppointmentsController < ApplicationController 
def create 
    @appointment = Appointment.new(appointment_params) 
    if @appointment.save 
     flash[:success] = "Welcome!" 
    else 
     render 'new' 
    end 
end 

def destroy 
end 
end 

Как сохранить конкретное назначение в базу данных через View? Как получить доступ к этому методу в диспетчере назначений из представления и задать параметры?

спасибо!

+0

«Доступ к этому через просмотр» был бы ужасной практикой, пожалуйста, не делайте этого. Я рекомендую прочитать некоторую документацию по инфраструктурам MVC. – OneChillDude

+0

Я знаю цель метода MVC, но я не знаю, что применить здесь. Если бы у меня была форма в новом представлении, метод был бы запущен после нажатия кнопки «Отправить», правильно? В моем случае мне нужно заполнить все данные с помощью Javascript, а затем как-то сохранить его в базе данных. Я использую полный календарь для встреч. Таким образом, я могу получить дату клика, идентификатор пользователя и идентификатор врача. Как сохранить их затем в базу данных? Любая помощь будет принята с благодарностью, потому что у меня осталось немного времени. – Cristiano

ответ

1

Слышали ли вы о чем-то под названием «update_attribute», это позволит вам обновлять определенные атрибуты/s по вашему желанию. Просто вы должны передать параметры, включая идентификатор из представления.

затем в контроллерах сделать что-то вроде этого:

user = User.find_by_id(params(:id)) 
user.appointments.update_attribute(:date, params(:date)) 

Checkout this ссылки для подробного описания.

1

Вы можете использовать @appointment на ваш взгляд, если вы создаете новое назначение, то метод является новым, который находится в AppointmentsController вам следует передать пустое назначение вида и где у вас есть new.html.erb с form_for вещи, а затем использовать создайте для их сохранения.

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