2016-03-31 8 views
0

У меня есть form_for, и я хочу получить доступ к его переменной в соответствующем методе контроллера отправки. Я объясню, что я имею в виду: У меня есть список объектов, предоставляемых следующим образом:Доступ к form_for объекта в соответствующем методе контроллера

<%= render medical_situations %>

Я соответствующий medical_situation.html.erb файл уточняет, как каждый объект выглядит, где внутри каждый из меня form_for следующим образом:

<%= form_for medical_situation, {url: :send_to_pool_medical_situations, method: :post, remote:true} do |f| %>

В соответствующем методе контроллера я хочу получить доступ к этому конкретному объекту medical_situation. Является ли это возможным. Я знаю, что могу пройти medical_situation_id, чтобы найти подходящий объект, но мне интересно, могу ли я сделать это без дополнительного запроса и кода. В моем методе send_to_poo я хочу обновить этот объект.

+0

вы имеете в виду вы хотите отправить объект с Params?, Лучший способ отправить идентификатор объекта управления и создать объект там – Thorin

+0

Может быть, вы можете добиться этого путем объявления статической переменной с '@@' в контроллере и попробуйте обновить его на странице просмотра. –

ответ

1

В соответствующем методе контроллера я хочу получить доступ к этому предмету medical12.jpg.

Это невозможно, поскольку http не имеет гражданства. Каждый новый запрос обрабатывается независимо от предыдущих. Приложение удалит все переменные в памяти после отклика ответа и начнет обработку новых входящих запросов с нуля с помощью нового и нового экземпляра контроллера, поэтому переменная medical_situations больше не будет существовать. Единственный способ указать приложение, объект которого вы хотите отобразить, - передать идентификатор объекта в параметрах запроса. Это позволит вам извлечь этот объект из базы данных и отобразить его с вашего контроллера.

https://stackoverflow.com/questions/4913763/what-does-it-mean-when-they-say-http-is-stateless

Why say that HTTP is a stateless protocol?

1

Нет, я не думаю, что вы можете отправить объект со страницы просмотра на свой контроллер. Вы должны передать id объекта, и снова вам нужно найти этот объект, используя идентификатор от params в вашем контроллере.