在相应的控制器方法

时间:2016-03-31 10:56:58

标签: ruby-on-rails ruby-on-rails-4 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方法中,我想要更新该对象。

2 个答案:

答案 0 :(得分:1)

不,我认为您无法从视图页面向控制器发送对象。 您必须传递对象的id,然后您必须使用控制器中params的ID找到该对象。

答案 1 :(得分:1)

  

在相应的控制器方法中,我想访问该特定的   medical_situation对象。

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

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

Why say that HTTP is a stateless protocol?