0
我在我的Rails 3.1網站上有一個靜態頁面。我有一個只有電子郵件屬性(電子郵件:字符串)的訪客模型。我想收集來自我網站訪問者的電子郵件。他們會在文本框中輸入他們的電子郵件,然後點擊提交,然後重定向到一個感謝頁面。收集電子郵件在軌道上的靜態頁面
我可以用資源做這種事情,但我不需要那麼多。只是一個提交和一個感謝。
我該怎麼做?請爲視圖和控制器提供代碼。
謝謝。
我在我的Rails 3.1網站上有一個靜態頁面。我有一個只有電子郵件屬性(電子郵件:字符串)的訪客模型。我想收集來自我網站訪問者的電子郵件。他們會在文本框中輸入他們的電子郵件,然後點擊提交,然後重定向到一個感謝頁面。收集電子郵件在軌道上的靜態頁面
我可以用資源做這種事情,但我不需要那麼多。只是一個提交和一個感謝。
我該怎麼做?請爲視圖和控制器提供代碼。
謝謝。
使用資源有什麼問題?你的訪客是資源,爲什麼不把它當作一個對待呢?
在你的路線:
resource :visitors, :only => :create # POST to visitor_path to create a visitor
root_to ...
在VisitorController
def create
@visitor = Visitor.new(params[:visitor])
if @visitor.save
render "pages/comingsoon" # or redirect, or render leave empty to render views/visitors/create.html.erb
else
# ...
end
end
現在你可以有一個文件視圖/頁/ comingsoon.html.erb與內容
<h1>Thank you</h1>
<p>Stored your email address <%= @visitor.email %></p>
而且爲了完整性,新訪客的表格:
<%= form_for Visitor.new do |f| => ...
謝謝!我嘗試過,但不明白form_for或form_tag是如何工作的。在收集電子郵件的靜態頁面中,表單看起來如何?另外,如果VisitorController中的@ visitor.save不必重定向到thankyou.html? – AdamT
<%= form_for Visitor.new do | f | %>應該做的。是的,您也可以redirect_to「thankyou」,但您將無法在thankyou頁面中使用@ visitor.email呈現當前用戶的電子郵件。 – emrass
謝謝。所以,現在,當我提交表單時,它成功地接收了電子郵件,但將我重定向到localhost:3000/visitor,並向我提供了「模板缺失」消息,指的是「創建」。我如何得到它thankyou.html.haml?另外,不是「資源:訪客」嗎? – AdamT