我正在尝试创建一个非常简单的电子邮件注册表单,用户只需输入他们的电子邮件并按提交即可。
我希望注册表格是部分的,所以我可以在网站的任何地方使用它。
表单的编码如下:
<%= form_for @subscription do |f| %>
如果当前视图,控制器和操作是主页,如何告诉@subscription
是Subscription.new
的表单?
谢谢!
答案 0 :(得分:0)
作为一种选择,您可以这样做:
<%= form_for Subscription.new do |f| %>
但有一点,我自己没试过。试一试,看看它是否有效。
修改强>
抱歉,我在第一次阅读时没有收到问题。
您可以在家庭控制器中将@subscription
实例变量设置为Subscription.new
,然后将其传递给部分(在主视图内),如下所示:
<%= render partial, :subscription => @subscription %>
希望这有帮助。
答案 1 :(得分:0)
您必须确保在调用部分之前实例化@subscription
...或者执行:
<%= form_for @subscription || Subscription.new do |f| %>
因此,如果@subscription
存在,则使用它。如果没有,它将回退到Subscription.new
答案 2 :(得分:0)
您可以在主页操作中将@subscription
声明为Subscription.new