我正在實施一個簡單的RoR網頁,收集訪客的電子郵件並將它們存儲爲對象。電子郵件收集器/實施
我使用它作爲迷你項目來嘗試RoR和BDD。我能想到的功能,3黃瓜: 1.用戶提交一個有效的電子郵件地址 2.用戶提交一個現有的電子郵件地址 3.用戶提交無效的電子郵件
我的問題是,對於情景2和3,是最好通過控制器來處理這個問題?或作爲班級中的方法?也許是在實例2或3中實例化時引發錯誤的東西?
實施情況如下,除了回答上述問題外,還喜歡聽聽一些代碼評論。謝謝!
MODEL:
class Contact < ActiveRecord::Base
attr_accessor :email
end
VIEW:
<h1>Welcome To My Experiment</h1>
<p>Find me in app/views/welcome/index.html.erb</p>
<%= flash[:notice] %>
<% form_for @contact, :url => {:action => "index"} do |f| %>
<%= f.label :email %><br />
<%= f.text_field :email %>
<%= submit_tag 'Submit' %>
<% end %>
控制器:
class WelcomeController < ApplicationController
def index
@contact = Contact.new
unless params[:contact].nil?
@contact = Contact.create!(params[:contact])
flash[:notice] = "Thank you for your interest, please check your mailbox for confirmation"
end
end
end
啊謝謝!這就說得通了。當我添加代碼時,出現以下錯誤: 未定義的方法'文本?' for nil:NilClass 追蹤到:/welcome_controller.rb:5:in'index' 任何線索這個錯誤是關於什麼? – Tian 2010-06-12 04:37:06
不確定。 welcome_controller的第5行是什麼? – 2010-06-12 04:53:46
@contact = Contact.create!(params [:contact]) – Tian 2010-06-12 06:12:31