我想在我网站的每个页面的页脚中放置一个简单的电子邮件注册表单。所以我创建了一个订阅脚手架,并做了以下部分:
<%= 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 %>
但是尽管指定了 Controller 和操作,我还是收到了以下错误:
undefined method `model_name' for NilClass:Class
该表单在订阅/新页面上工作正常,但我如何制作它以便我可以从任何 Controller 和任何页面提交表单,而不必在任何地方定义@subscription?
最佳答案
最简单的事情就是简单地改变:
<%= form_for @subscription ...
至:
<%= form_for Subscription.new ...
而且,就像已经指出的那样,我怀疑您是否需要 url 选项。
关于ruby-on-rails - 如何从任何 Controller 提交表单 - Rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467505/