在相应的控制器方法中访问 form_for 对象

Access form_for object in corresponding controller method

我有一个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 方法中,我想更新该对象。

不,我认为您不能将对象从视图页面发送到您的控制器。 您必须传递一个对象的 id,然后您必须再次使用控制器中 params 的 ID 找到该对象。

In corresponding controller method I want to access that particular medical_situation object.

无论如何都不可能,因为 http 是无状态的。每个新请求都独立于之前的请求进行处理。应用程序将在响应呈现后删除所有内存中的变量,并使用新的控制器实例从头开始处理新的传入请求,因此 medical_situations 变量将不再存在。告诉应用程序您要显示哪个对象的唯一方法是在请求参数中传递对象 ID。它将允许您从数据库中获取此对象并从您的控制器中显示它。