Tuesday, 3 September 2013

Simple newsletter form

Simple newsletter form

So i have a static_pages#home in which i want people to put their email
address in a form, which will save it to the database in my
NewslettersController. But i it doesnt work for me, i can type in my email
address and press submit but it wont be saved to the database or validated
in the model.
View static_pages#home which is root
<%= form_for Newsletter.new, :url => { :controller => "newsletters",
:action => "create" } do |f| %>
<%= f.text_field :email, :style => "width:50%;", :placeholder => "Your
email address", :class => "form-control input-sm" %>
<%= f.submit "Keep me updated", :class => "btn btn-primary btn-sm" %>
<% end %>
Model
class Newsletter < ActiveRecord::Base
attr_accessible :email
validates_uniqueness_of :email
validates_format_of :email, :with =>
/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
end
Controller
class NewslettersController < ApplicationController
def create
@newsletter = Newsletter.new(params[:newsletter])
respond_to do |format|
if @newsletter.save
format.html { redirect_to root_path, notice: 'You will hear from
us shortly, Thank You' }
else
format.json { render json: @newsletter.errors, status:
:unprocessable_entity }
end
end
end
end
resources :newsletters, :only => :create

No comments:

Post a Comment