我正在尝试创建一个非常简单的电子邮件注册表单,用户可以在其中输入他们的电子邮件并按提交。
我希望注册表单是部分的,所以我可以在网站的任何地方使用它。
表单编码如下:
<%= form_for @subscription do |f| %>
如果当前视图、控制器和操作是主页,如何判断表单@subscription
是什么?Subscription.new
谢谢!
我正在尝试创建一个非常简单的电子邮件注册表单,用户可以在其中输入他们的电子邮件并按提交。
我希望注册表单是部分的,所以我可以在网站的任何地方使用它。
表单编码如下:
<%= form_for @subscription do |f| %>
如果当前视图、控制器和操作是主页,如何判断表单@subscription
是什么?Subscription.new
谢谢!
作为一个选项,您可以执行以下操作:
<%= form_for Subscription.new do |f| %>
不过有一件事,我自己没有尝试过。试试看它是否有效。
编辑:
抱歉,我在第一次阅读时没有得到问题。您可以在 home 控制器中设置@subscription
实例变量Subscription.new
,然后将其传递给部分(在主视图内),如下所示:
<%= render partial, :subscription => @subscription %>
希望这可以帮助。
您必须确保@subscription
在调用部分之前已实例化 ... 或 do :
<%= form_for @subscription || Subscription.new do |f| %>
因此,如果@subscription
存在,它会使用它。如果没有,它将退回到Subscription.new
您可以在 home 操作中声明@subscription
为正确的Subscription.new