2

ウェブサイトのすべてのページのフッターに簡単なメール登録フォームを配置したいと考えています。そこで、サブスクリプションの足場を作成し、次の部分を作成しました。

<%= 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 をどこでも定義することなく、任意のコントローラーと任意のページからフォームを送信できるようにするにはどうすればよいですか?

4

1 に答える 1

3

最も簡単なことは、単純に変更することです。

<%= form_for @subscription ... 

に:

<%= form_for Subscription.new ...

そして、すでに述べたように、私はあなたがurlオプションを必要とするとは思わない。

于 2013-01-22T20:52:28.997 に答える