Рельсы нуб тут. У меня есть приложение рельсов с (в этом примере) тремя таблицами. Пользователи, машины и тесты.
У пользователей много машин и тестов.
Машины принадлежат Пользователям.
Испытания принадлежат машинам.
Когда я создаю новый тест, я хочу, чтобы в поле test.machine_id автоматически устанавливался идентификатор машины, которой принадлежит этот тест. Мне удалось создать поле с раскрывающимся меню, отображающее все машины, принадлежащие current_user, но я не хочу, чтобы пользователь устанавливал это поле вручную.
Тесты могут быть созданы только путем доступа к ссылке «Создать новый тест» на странице машинного шоу.
* Например, у Пользователя 1 есть Машины 4 и 5. При просмотре страницы Показа Машины 5 я хочу создать тест 10. Я хочу, чтобы для test (10) .machine_id было установлено значение 5, при этом пользователю не нужно вводить это вручную . *
В моем файле tests_controller.rb у меня есть следующее:
def new
@test = Test.new
@machines = current_user.machiness.all
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @test }
end
end
def create
@test = Test.new(params[:test])
respond_to do |format|
if @test.save
format.html { redirect_to(@test, :notice => 'Test was successfully created.') }
format.xml { render :xml => @test, :status => :created, :location => @test }
else
format.html { render :action => "new" }
format.xml { render :xml => @test.errors, :status => :unprocessable_entity }
end
end
конец
Я думаю, мне нужно что-то вроде:
def create
@test = current_machine.tests.build(params[:test])
...
end
... но я не думаю, что current_machine - это реальный объект.
Тесты могут быть созданы только путем доступа к ссылке «Создать новый тест» на странице машинного шоу.
Есть предложения?