如何从任何控制器提交表单 - Rails?

时间:2013-01-22 20:35:16

标签: ruby-on-rails rails-activerecord

我想在我网站的每个页面的页脚中添加一个简单的电子邮件注册表单。所以我创建了一个订阅脚手架,并做了以下部分:

<%= form_for @subscription, :url => {:controller => 'subscriptions', :action => 'create'} do |f| %>
 <div class="input-append">
   <%= f.text_field(:email, :id => "appendedInputButton", :placeholder => 'Subscribe', :class => 'span4') %><button class="btn" type="submit" name="commit">Subscribe</button>
 </div>
<% end %>

但是尽管指定了控制器和操作,我收到以下错误:

undefined method `model_name' for NilClass:Class

表格在订阅/新页面上运行良好,但我如何制作,以便我可以从任何控制器和任何页面提交表格,而无需在任何地方定义@subscription?

1 个答案:

答案 0 :(得分:2)

最简单的事情就是简单地改变:

<%= form_for @subscription ... 

要:

<%= form_for Subscription.new ...

并且,就像已经注意到的那样,我怀疑你需要网址选项。