Skip to content

Instantly share code, notes, and snippets.

@liondancer
Created December 3, 2014 06:30
Show Gist options
  • Save liondancer/627f35296e277f51dad7 to your computer and use it in GitHub Desktop.
Save liondancer/627f35296e277f51dad7 to your computer and use it in GitHub Desktop.
class ContactRequest < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
validates :message, presence: true, length: { maximum: 500 }
end
Started POST "/test" for ::1 at 2014-12-02 21:44:04 -0800
Processing by UsersController#create as JS
Parameters: {"utf8"=>"✓", "users"=>{"first_name"=>"bradddddy", "last_name"=>"li", "email"=>"brad@gmail.com", "phone_number"=>"123123123", "message"=>"hi there bud"}, "commit"=>"Save Users"}
Unpermitted parameter: message
(0.1ms) BEGIN
(0.1ms) ROLLBACK
Completed 500 Internal Server Error in 2ms
ArgumentError (wrong number of arguments (1 for 0)):
app/controllers/users_controller.rb:46:in `create'
Rendered /Users/bli1/.rvm/gems/ruby-2.1.3/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_source.erb (4.1ms)
Rendered /Users/bli1/.rvm/gems/ruby-2.1.3/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_trace.text.erb (0.5ms)
Rendered /Users/bli1/.rvm/gems/ruby-2.1.3/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/_request_and_response.text.erb (0.5ms)
Rendered /Users/bli1/.rvm/gems/ruby-2.1.3/gems/web-console-2.0.0/lib/action_dispatch/templates/rescues/diagnostics.text.erb (14.8ms)
^C[2014-12-02 21:51:23] INFO going to shutdown ...
<!-- contact -->
<section id="contact">
<div class="container">
<div class="title-container">Contact Us</div>
<div class="title-caption">Reach us at (415)-911-9999</div>
<%= form_for(:users, remote: true, id: "contact-form", class: "contact-input") do |f| %>
<div class="col-md-12">
<div class="col-md-6">
<div class="contact-input-margin form-group">
<%= f.text_field(:first_name, class: "form-control", placeholder: "First name")%>
</div>
<div class="contact-input-margin form-group">
<%= f.text_field(:last_name, class: "form-control", placeholder: "Last name") %>
</div>
<div class="contact-input-margin form-group">
<%= f.email_field(:email, class: "form-control", placeholder: "Email") %>
</div>
<div class="contact-input-margin form-group">
<%= f.telephone_field(:phone_number, class: "form-control", placeholder: "Phone number") %>
</div>
</div>
<div class="contact-input-margin col-md-6">
<div class="form-group">
<%= f.fields_for :contact_requests do |builder| %>
<%= f.text_area(:message, class: "form-control contact-margin", rows: "8", placeholder: "Message...") %>
<% end %>
</div>
</div>
</div>
<%= f.submit(class: "btn btn-xl") %>
<% end %>
</div>
</section>
class UsersController < ApplicationController
def new
end
# def create
# # render plain: params[:users].inspect
# if User.find_by(email: params[:user][:email])
# # create new row in contact_request table
# @contact_request = ContactRequest.new(params[:user][:message])
# @contact_request.save
# else
# # create new user row and also new row in contact_request table
# @user = User.new(user_params)
# @user.save
# end
# private
# def user_params
# # strong_parameters, which requires us to tell Rails exactly which parameters
# # we want to accept in our controllers
# params.require(:users).permit(:first_name, :last_name, :email, :phone_number, :message)
# end
# def contact_request_params
# # params.require
# end
# def create
# # if !(User.find_by(email: params[:users][:email]))
# if User.where(email: params[:users][:email]).empty?
# @user = User.new(user_params)
# @user.contact_request = ContactRequest.new(contact_request_params)
# @user.contact_request.save
# @user.save
# else
# @user.contact_request = ContactRequest.new(contact_request_params)
# @user.contact_request.save
# end
# end
def create
User.create(user_params)
end
private
def user_params
# strong_parameters, which requires us to tell Rails exactly which parameters
# we want to accept in our controllers
params.require(:users).permit(:first_name, :last_name, :email, :phone_number, contact_request_attributes: [:message])
end
end
class User < ActiveRecord::Base
# before_save { |user| user.email = user.email.downcase }
has_many :contact_requests
# validate the presence of the attributes
validates(:first_name, presence: true)
validates(:last_name, presence: true)
validates(:email, presence: true)
accepts_nested_attributes_for :contact_requests
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment