2013-01-22 34 views
2

我想在我網站的每個頁面的頁腳中添加一個簡單的電子郵件註冊表單。所以,我創建了一個訂閱支架,並取得了以下部分:如何從任何控制器提交表單 - Rails?

<%= 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?

+0

沒有任何區別,您使用腳手架生成訂閱的同樣的錯誤 – railsy

+0

? – Wasi

+0

是的,我做了rails g腳手架訂閱電子郵件:字符串first_name:字符串 – railsy

回答

2

最簡單的事情是簡單地改變:

<%= form_for @subscription ... 

要:

<%= form_for Subscription.new ... 

而且,像已經指出的那樣,我懷疑你需要使用的網址。

+0

做到了,didn不知道你能做到這一點!非常感謝 – railsy

相關問題