devise facebook and tweeter ,github authentication sending wrong url - devise

I am doing this in config/initializer/devise.rb using rails3 rc and ruby 1.9.2rc
config.warden do |manager|
manager.oauth(:twitter) do |twitter|
twitter.consumer_secret = "...key....."
twitter.consumer_key = ".....app_key......"
twitter.options :site => 'http://twitter.com'
end
# manager.default_strategies(:scope => :user).unshift :twitter_oauth
Warden::OAuth.access_token_user_finder(:twitter) do |access_token|
user = User.find_by_access_token_and_access_secret(access_token.token, access_token.secret)
user ||= User.create(:access_token => access_token.token, :secret => access_token.secret)
end
end
#Warden::OAuth.access_token_user_finder(:twitter) do |access_token|
# User.find_or_create_by(:token => access_token.token, :secret => access_token.secret).tap
# end
config.oauth :github, '....app_key...', '...secret........',
:site => 'https://github.com/',
:authorize_path => 'login/oauth/authorize',
:access_token_path => 'login/oauth/access_token',
:scope => %w(user public_repo)
config.oauth :facebook, '..app_key....', '..secret........',
:site => 'https://graph.facebook.com',
:authorize_path => 'login/oauth/authorize',
:access_token_path => 'login/oauth/access_token'
when i click on link created in sing_in form its go to face or twitter or github but show message page not found , or url not exist what should be the problem

Related

ActionController::RoutingError (No route matches "/welcome/admin_dashboard"):

I am trying to setup VirtualX Assessment Software that I downloaded online.
Here is the link where I got it: https://virtualx.sourceforge.net/download.html
I managed to make it run where I was able to load its webpage but there are still some functions where I'm getting an error.
Here, I'm trying to approve a test account that registered to the platform:
When I hit approve, here is the error that I'm getting:
Here is the content of routes.db
Virtualx::Application.routes.draw do
get "errors/not_found"
get "subcategory/index"
get "subcategory/list"
get "subcategory/show"
post "subcategory/save"
post "subcategory/update"
get "subcategory/edit"
get "subcategory/new"
get "subcategory/destroy"
post "subcategory/destroy"
#resources :article
get "article/index"
get "article/show"
get "article/list"
get "article/comment"
post "article/comment"
get "article/new"
post "article/save"
get "article/edit"
post "article/update"
get "article/news"
get "article/destroy"
post "article/destroy"
get "article/delete"
post "article/delete"
match '/getBlogcategory' => 'article#getBlogcategory'
match '/thumbsUp' => 'article#thumbsUp'
match '/thumbsDown' => 'article#thumbsDown'
match '/delete_comment' => 'article#delete_comment'
get "blog_category/index"
get "blog_category/list"
get "blog_category/show"
post "blog_category/save"
post "blog_category/update"
get "blog_category/edit"
get "blog_category/destroy"
post "blog_category/destroy"
get "blog_category/new"
match '/subcategory' => 'blog_category#subcategory'
match '/subcategory_article' => 'blog_category#subcategory_article'
match '/blog' => 'blog_category#blog'
match '/categoryArticle' => 'blog_category#categoryArticle'
resources :users do
get :autocomplete_user_name, :on => :collection
end
resources :folders
get "folders/index"
get "folders/new"
get "folders/create"
post "folders/create"
get "assets/destroy"
post "assets/destroy"
match "browse/:folder_id" => "folders#browse", :as => "browse"
match "browse/:folder_id/new_folder" => "folders#new", :as => "new_sub_folder"
match "browse/:folder_id/new_file" => "assets#new", :as => "new_sub_file"
match "browse/:folder_id/rename" => "folders#edit", :as => "rename_folder"
match '/getName' => 'folders#getName'
match '/unshareFolder' => 'folders#unshareFolder'
resources :assets
get "assets/index"
get "assets/new"
get "assets/create"
post "assets/create"
get "assets/destroy"
post "assets/destroy"
match "assets/get/:id" => "assets#get", :as => "download"
match "assets/share" => "assets#share"
match "assets/unshare" => "assets#unshare"
match '/lock' => 'assets#lock'
match '/unlock' => 'assets#unlock'
resources :aboutus
resources :clientinfo
resources :images
#get "images/index"
#get "images/new"
match '/view_aboutus' => 'home#view_aboutus'
match '/view_clients' => 'home#view_clients'
match '/view_features' => 'home#view_features'
match '/view_modules' => 'home#view_modules'
match '/view_contactus' => 'home#view_contactus'
match '/deleteUsersubject' => 'users#deleteUsersubject'
match '/clientImage' => 'images#clientImage'
match '/createClientimage' => 'images#createClientimage'
get "/questions/question_type_listing"
post "/questions/new"
resources :questions do
member do
get "delete_option"
post "delete_option"
get "delete_match_option"
post "delete_match_option"
get "delete_matrix_row"
post "delete_matrix_row"
get "delete_matrix_column"
post "delete_matrix_column"
get "delete_hrcl_option"
post "delete_hrcl_option"
get "saveImage"
post "saveImage"
end
end
#post "questions/publish_unpublish"
#get "questions/publish_unpublish"
match '/publish_unpublish' => 'questions#publish_unpublish'
match '/unpublish' => 'questions#unpublish'
match '/share' => 'questions#share'
match '/saveImage' => 'questions#saveImage'
match '/sharewithCategory' => 'questions#sharewithCategory'
match'/checkMark' => 'questions#checkMark'
match'/viewQuestion' => 'questions#viewQuestion'
get "subjects/add_subject_category"
resources :subjects
post "subjects/cs"
resources :categories
resources :category_titles
resources :emails
post "attend_exams/confirm_exam"
get "attend_exams/confirm_exam"
post "attend_exams/reject_exam"
get "attend_exams/reject_exam"
resources :attend_exams
get "attend_exams/index"
match '/examination' => 'attend_exams#examination'
match '/instruction' => 'attend_exams#instruction'
match '/evaluation' => 'attend_exams#evaluation'
match '/evaluation' => 'attend_exams#ramdomizeQuestions'
match '/examComplete' => 'attend_exams#examComplete'
match '/calculateScore' => 'attend_exams#calculateScore'
match '/windowClose' => 'attend_exams#windowClose'
match 'welcome/examinee_dashboard' => 'welcome#examinee_dashboard'
#get "exams/attend_exam"
#post "exams/attend_exam"
resources :exams
# member do
#get "exams/index"
# end
#end
match '/scheduleExam' => 'exams#scheduleExam'
match '/selectQuestion' => 'exams#selectQuestion'
match '/assignQustions' => 'exams#assignQustions'
match '/selectExaminee' => 'exams#selectExaminee'
match '/assignExaminees' => 'exams#assignExaminees'
match '/previewExam' => 'exams#previewExam'
match '/deleteExamQuestion' => 'exams#deleteExamQuestion'
match '/deleteExamUser' => 'exams#deleteExamUser'
match '/getMark' => 'exams#getMark'
match '/assignExam' => 'exams#assignExam'
match '/groupExam' => 'exams#groupExam'
match '/updateMark' => 'exams#updateMark'
match '/examtype' => 'exams#examtype'
match '/create_examtype' => 'exams#create_examtype'
match '/listExamtypes' => 'exams#listExamtypes'
match '/editExamtype' => 'exams#editExamtype'
match '/deleteExamtype' => 'exams#deleteExamtype'
match '/updateExamtype' => 'exams#updateExamtype'
match '/getExam' => 'exams#getExam'
match '/showEvaluationtype' => 'exams#showEvaluationtype'
match '/hideEvaluationtype' => 'exams#hideEvaluationtype'
match '/evaluate' => 'exams#evaluate'
match '/getExamQuestions' => 'exams#getExamQuestions'
match '/manualEvaluation' => 'exams#manualEvaluation'
match '/finishEvaluation' => 'exams#finishEvaluation'
match '/getCategoryexams' => 'exams#getCategoryexams'
match '/assignEvaluator' => 'exams#assignEvaluator'
match '/getEvaluator' => 'exams#getEvaluator'
match '/evaluator' => 'exams#evaluator'
match '/delete_evaluator' => 'exams#delete_evaluator'
match '/completedExams' => 'attend_exams#completedExams'
match '/pendingExams' => 'attend_exams#pendingExams'
match '/updateCategory' => 'category_titles#updateCategory'
match '/deleteCategory' => 'category_titles#deleteCategory'
get "settings/index"
post "settings/update"
get "feedback/index"
match '/assign' => 'feedback#assign'
match '/unassign' => 'feedback#unassign'
match '/viewFeedback' => 'feedback#viewFeedback'
match '/submitFeedback' => 'feedback#submitFeedback'
match '/viewfeedbackResponse' => 'feedback#viewfeedbackResponse'
match '/feedbackResponse' => 'feedback#feedbackResponse'
get "reports/index"
get "results/index"
match '/usersResult' => 'results#usersResult'
match '/resultIndex' => 'results#index'
match '/viewUserResult' => 'results#viewUserResult'
match '/groupResult' => 'results#groupResult'
match '/examsResult' => 'results#examsResult'
match '/viewExamResult' => 'results#viewExamResult'
match '/departmentResult' => 'results#departmentResult'
match '/viewDepartmentResult' => 'results#viewDepartmentResult'
#get "examination/index"
# get "reports/generateDepartmentReport"
match '/userReport' => 'reports#userReport'
match '/viewuserReport' => 'reports#viewuserReport'
match '/examReport' => 'reports#examReport'
match '/viewexamReport' => 'reports#viewexamReport'
match '/generateUser' => 'reports#generateUser'
match '/userSubjectwise' => 'reports#userSubjectwise'
match '/generateExamReport' => 'reports#generateExamReport'
match '/departmentReport' => 'reports#departmentReport'
match '/viewDepartmentReport' => 'reports#viewDepartmentReport'
match '/generateDepartmentReport' => 'reports#generateDepartmentReport'
match '/viewDepartmentReportgraph' => 'reports#viewDepartmentReportgraph'
match '/highLevel' => 'reports#highLevel'
match '/reportYear' => 'reports#reportYear'
match '/overall' => 'reports#overall'
match '/specificDepartment' => 'reports#specificDepartment'
match '/departmentDetailed' => 'reports#departmentDetailed'
match '/semesterDetailed' => 'reports#semesterDetailed'
match '/pass_fail' => 'reports#pass_fail'
match '/generatePassfail' => 'reports#generatePassfail'
match '/fetchExam' => 'reports#fetchExam'
match '/listCategories' => 'categories#listCategories'
match '/delete_category' => 'categories#delete_category'
get "questions/index"
get "subjects/index"
# resources :settings
resources :temporary_examinee
#get "temporary_examinee/new"
#get "temporary_examinee/create"
#post "temporary_examinee/create"
#get "user_registration/new"
resources :user_registration
#resources :welcome
get "welcome/index"
get "welcome/admin_dashboard"
get "welcome/examiner_dashboard"
get "welcome/qsetter_dashboard"
get "welcome/examinee_dashboard"
post "welcome/confirm_registration"
get "welcome/confirm_registration"
post "welcome/reject_registration"
get "welcome/reject_registration"
get "welcome/user_management"
get "welcome/workflow"
get "passwords/new"
#get "passwords/forgot"
match 'groupUser' => 'users#groupUser'
match 'createGroup' => 'users#createGroup'
get "user_sessions/new"
get "users/new"
get "users/generate_temporary_password"
post "users/generate_temporary_password"
match 'activate_inactivate' => 'users#activate_inactivate'
match 'activate' => 'users#activate'
match 'inactivate' => 'users#inactivate'
#match 'users/tempexaminee' => 'users#new'
resources :users
get "users/show"
get "users/edit"
get "home/index"
get "user_sessions/new"
resources :user_sessions
match 'login' => "user_sessions#new", :as => :login
match 'logout' => "user_sessions#destroy", :as => :logout
#get "password_resets/new"
resources :password_resets do
member do
get 'confirmEmail'
get 'setPassword'
get 'savePassword'
post 'savePassword'
get 'verifyPassword'
end
end
get "password_resets/edit"
# post "password_resets/edit"
get 'verify/:id' => 'user_verifications#index'
# The priority is based upon order of creation:
# first created -> highest priority.
# Sample of regular route:
# match 'products/:id' => 'catalog#view'
# Keep in mind you can assign values other than :controller and :action
# Sample of named route:
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
# This route can be invoked with purchase_url(:id => product.id)
# Sample resource route (maps HTTP verbs to controller actions automatically):
# resources :products
# Sample resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# Sample resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# Sample resource route with more complex sub-resources
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', :on => :collection
# end
# end
# Sample resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
# You can have the root of your site routed with "root"
# just remember to delete public/index.html.
# root :to => "welcome#index"
root :to => 'home#index'
resources :home
# See how all your routes lay out with "rake routes"
# This is a legacy wild controller route that's not recommended for RESTful applications.
# Note: This route will make all actions in every controller accessible via GET requests.
# match ':controller(/:action(/:id(.:format)))'
end
Here is the content of welcome_controller:
=begin
welcome_controller.rb
Description: Controller file for managing the Welcome page of the application
Created on: October 11, 2010
Last modified on: March 18, 2013
Copyright 2013 PIT Solutions Pvt. Ltd. All Rights Reserved.
=end
class WelcomeController < ApplicationController
filter_access_to :all
#layout "home"
layout :choose_layout
def choose_layout
if action_name == 'workflow'
return 'workflow'
else
return 'application'
end
end
def index
end
def workflow
end
def admin_dashboard
#setting = Setting.find(:first)
#pageCollect = params[:pageLength].to_i
if #pageCollect == 0
#pagelength = 10
else
#pagelength = params[:pageLength].to_i
end
if params[:char]
letter = params[:char]
#letter = params[:char]
#registered_examinees = User.where(["is_registered = ? and role_id = ? and is_temp_examinee = ? and name like '#{params[:char]}%'", 1,Examinee,0]).paginate(:page => params[:page], :per_page => #pagelength)
#unapproved_examinees = User.where(["is_registered = ? and confirmed != ? and role_id = ? and is_temp_examinee = ? and name like '#{params[:char]}%'", 1,1,Examinee,0])
else
#registered_examinees = User.where(["is_registered = ?",1]).paginate(:page => params[:page], :per_page => #pagelength)
#unapproved_examinees = User.where(["is_registered = ? and confirmed != ? and role_id = ? and is_temp_examinee = ? and name like '#{params[:char]}%'", 1,1,Examinee,0])
end
end
def examiner_dashboard
end
def qsetter_dashboard
end
def examinee_dashboard
end
def confirm_registration
#all_approved_users = params[:check_examinee]
#all_approved_users.each do|approved|
#user = User.find_by_id(approved.to_i)
#user.update_attributes(:is_approved => 1)
if (#user.is_approved == 0 and #user.confirmed == false) or (#user.is_approved == 1 and #user.confirmed == false) or (#user.is_approved == 2 and #user.confirmed == false)
UserMailer.user_registration_email_confirmation(#user,$pwd).deliver
end
end
flash[:success] = t('flash_success.email_verification')
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
def reject_registration
#rejected_users = params[:check_examinee]
#rejected_users.each do|rejected|
#user = User.find_by_id(rejected.to_i)
unless (#user.is_approved == 2 and #user.confirmed == false)
#user.update_attributes(:confirmed => false,:is_approved => 2)
UserMailer.examinee_registration_rejection(#user).deliver
end
end
flash[:success] = t('flash_success.email_rejection')
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
end
Here is the content of admin_dashboard:
<div id="flash_notice" style="display: none;"></div>
<h2><%= t('welcome.filter_examinees')%></h2>
<div class="formContainer">
<table class="formTable" style="border:0px;">
<tr>
<td style="width:auto;" class="lettersort"><%= link_to t('general.all'), :action=>"admin_dashboard"%> | <% for char in 'A'..'Z' %>
<%= link_to( "#{char}", :char=>char, :action=>"admin_dashboard")%>
<%end%></td>
</tr>
</table>
</div>
<%if #setting.examineeApprove == 1%>
<div class="updateStatus">
<%unless #registered_examinees.empty?%>
<div class="qestionhead">
<h3><%= t('welcome.reg_examinees')%></h3>
<%= render :partial=>"users/pageLinks"%>
</div>
<%end%>
<%unless #letter == nil%>
<%= hidden_field_tag "char",#letter%>
<%else%>
<%= hidden_field_tag "char"%>
<%end%>
<div id="examinee_activation">
<%= render 'activation', :collection => #registered_examinees%>
</div>
<br>
</div>
<%else%>
<%= t('user.user_notfound')%>
<%end%>
<script type="text/javascript">
$(document).ready(function() {
$(".pageNum").click(function(){
var data = {pageLength: this.id, char: $("#char").val()};
var url = "<%= url_for(welcome_admin_dashboard_path)%>
";
$.get(url, data)
$(".pageNum").live("click", function(){
var url = "
<%= url_for(welcome_admin_dashboard_path)%>
";
var target = url + "?pageLength=" + this.id + "&char=" + $("#char").val()
$.getScript(target,$("#" + this.id).serialize(),function(data){
});
//$.getScript(this.href,+"?pageLength="+this.id);
return false;
});
});
$("#examinee_activation .pagination a").live("click", function(){
var link = this.href
var lastChar = link.substr(link.length - 1);
if (lastChar == '#'){
return false;
}
else{
$.getScript(this.href);
return false;
}
});
});
</script>
Sorry for including everything. I am very new to this and I'm just trying to run something that was created by others. Any help to fix why I'm getting this error is greatly appreciated.

Rails mailer sending Empty Body on EMail

I have following on config/application.rb
config.action_mailer.default_url_options = { :host => 'xxxxx.com' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:domain => 'xxxxx.com',
:user_name => 'xxx.xxxxx#gmail.com',
:password => 'xxxxxxxxxxxxxxxx',
:authentication => 'plain',
:enable_starttls_auto => true }
And in app/mailers/welcome_mailer.rb
def welcome_email(user)
#user = user
#lang=I18n.locale
if #user.email.present?
begin
headers = {
:subject => welcome_email_subject(#user).to_s,
:from => ADMINISTRATIVE_EMAIL,
:to => user.email
}
mail(headers)
rescue Exception => e
abort
end
end
end
I have a template on /app/views/welcome_mailer/welcome_email.html.erb
I am using this mailer action for sending welcome emails along with confirmation link by using devise.For that I have done the following on /config/initializers/welcome_mailers.rb
module Devise::Models::Confirmable
def send_on_create_confirmation_instructions
if self.email
WelcomeMailer.welcome_email(self).deliver
end
end
def send_reset_password_instructions
generate_reset_password_token! if should_generate_reset_token?
WelcomeMailer.generate_password(self).deliver
end
end
Even though the development I have used same smtp configurations I am getting empty body for the mail sent on production and the same working fine in development(local).By the way my production environment is Amazon EC2. Initally 15 days before I have got the same issue and I solved by changing the smtp account.Now it is not happening in any order.Suggest with your feedback or comments.
You can overwrite the template route in the mailer config:
class WelcomeMailer < ActionMailer::Base
...
self.template_root = "#{RAILS_ROOT}/app/views/mailers" # Rails.root in 3.x
...
end

Keep getting A sender (Return-Path, Sender or From) required to send a message

class SupportMailer < ActionMailer::Base
default :from => "email1#gmail.com"
def welcome_email(ticket)
case ticket.game
when "gameone"
#ticket = ticket
headers["Reply-to"] = "email1+#{ticket.token}#gmail.com"
headers["Return-Path"] = "email1+#{ticket.token}#gmail.com"
mail(:from => "email1#gmail.com", :to => ticket.email, :subject => "Welcome to 1 Support Ticket")
when "gametwo"
#ticket = ticket
headers["Reply-to"] = "email2+#{ticket.token}#gmail.com"
headers["Return-Path"] = "email2+#{ticket.token}#gmail.com"
mail(:from => "email2#gmail.com", :to => ticket.email, :subject => "Welcome to 2 Support Ticket")
when "gamethree"
#ticket = ticket
headers["Reply-to"] = "email3+#{ticket.token}#gmail.com"
header["Return-Path"] = "email3+#{ticket.token}#gmail.com"
mail(:from => "email3#gmail.com", :to => ticket.email, :subject => "Welcome to 3 Support Ticket")
end
end
end
I've set my default :from, so I don't get why I keep getting this message, I'm also trying to set it via headers to no avail.
here are my settings
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:user_name => "emailx#gmail.com",
:password => "password",
:authentication => "plain",
:enable_starttls_auto => true
}
I just call it like so, SupportMailer.support_response(#message).deliver
How do I fix this?
I notice you have no default case for the case statement. If you never end up calling the "mail" method inside your methods in the Mailer class, you'll get that error. Try moving your case statement out to where you call SupportMailer, maybe have methods for each case. That way you never call the SupportMailer unless you've already determined the correct ticket game.

Devise:: Cannot create user through rake db:seed (failure confirmation_instructions)

User model has a function
def self.createadmin(
User.create(:email => "abc#gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end
In rake db:seed, I have to call User.createadmin
However, this fails
ActionView::Template::Error: ActionView::Template::Error
from /Users/bever/Projects/tr/app/views/devise/mailer/confirmation_instructions.html.erb:3:in `_app_views_devise_mailer_confirmation_instructions_html_erb___1974818942364630283_2154906860'
Then I changed the code in createadmin
begin
User.create(:email => "abc#gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
rescue => e
User.create(:email => "abc#gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end
It works! Any clue why this is happening?
Have you tried seeding from the db/seeds.rb file instead of the model? When you try to do it on the model, devise is probably trying to send the conformation mail.
You should create your admin user on the seeds.rb file like this
User.create(:email => "abc#gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
Remember that if you are using confirmable module of devise you should add this field to the query.
:confirmed_at => Time.now
Maybe you should add the confirmation tokens and other fields useful to administrate your admin account via your rails app and not on the console.
PD: Probably if you post more of the error shown and maybe the line in the view I can help you more.
Greetings

Custom method after some validation passes

Ok.
1) I need to validate :link in my model and do that only if it is not blank (or nil).
2) If :link is not blank and standard validation passes — I need to run my custom validation method to check URL availability.
By "standard" validation I mean something like this:
validates :link, :presence => true, :uniqueness => true,
:format => { :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix }
What is the correct way to implement this?
It checks for validation in your model only if link isn't blank:
validates_presence_of :link, :uniqueness => true,
:format => { :with => /^(http|https)://[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(/.)?$/ix }, :if => :link_present?
def link
self.link
end
def link_present?
link.present?
end
Ok. With friends help I finally solved this.
class Post < ActiveRecord::Base
# skipped some things not necessary
validates_format_of :link, :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix , :allow_blank => true
validates_length_of :link, :maximum => 2000
validates_uniqueness_of :link, :allow_blank => true
validate :ensure_link_is_available, :if => proc{|post| post.link.present? && post.errors.empty?}
def ensure_link_is_available
begin
require "net/http"
url = URI.parse(self.link)
req = Net::HTTP.new(url.host, url.port)
res = req.request_head(url.path)
rescue
# error occured, add error
self.errors.add(:link, 'The requested URL could not be retrieved')
else
# valid site
if (res.code.to_i > 308)
error_message = 'Server responded with ' + res.code
self.errors.add(:link, error_message)
end
end
end
end
validates_format_of :url_field, :with => URI::regexp(%w(http https))