0

我正在尝试创建一个非常简单的电子邮件注册表单,用户可以在其中输入他们的电子邮件并按提交。

我希望注册表单是部分的,所以我可以在网站的任何地方使用它。

表单编码如下: <%= form_for @subscription do |f| %>

如果当前视图、控制器和操作是主页,如何判断表单@subscription是什么?Subscription.new

谢谢!

4

3 回答 3

0

作为一个选项,您可以执行以下操作:

<%= form_for Subscription.new do |f| %>

不过有一件事,我自己没有尝试过。试试看它是否有效。

编辑:

抱歉,我在第一次阅读时没有得到问题。您可以在 home 控制器中设置@subscription实例变量Subscription.new,然后将其传递给部分(在主视图内),如下所示:

<%= render partial, :subscription => @subscription %> 

希望这可以帮助。

于 2012-10-05T22:06:08.470 回答
0

您必须确保@subscription在调用部分之前已实例化 ... 或 do :

 <%= form_for @subscription || Subscription.new do |f| %>

因此,如果@subscription存在,它会使用它。如果没有,它将退回到Subscription.new

于 2012-10-05T22:07:16.600 回答
0

您可以在 home 操作中声明@subscription为正确的Subscription.new

于 2012-10-05T22:08:03.010 回答