Guest User

Untitled

a guest
May 24th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. #What im trying to do is to create a user signup, i have a user sessions #created aswell (for the user session.. using a different controller)
  2. #(as you may also be able to tell, is that I am a rails noob)
  3. -------------------------------------------------------------
  4. # my create view (to register new user):
  5.  
  6. <h3>Register</h3>
  7. <%= token_tag %>
  8. <%form_for :user do |form| %>
  9. <fieldset>
  10. <legend>Please enter your details</legend>
  11. <%= error_messages_for "user" %>
  12. <div class="FormRow">
  13. <label for="login:">Full name:</label>
  14. <%= form.text_field :name, :size =>20, :maxlength =>30 %>
  15. <br />
  16. </div>
  17. <div class="FormRow">
  18. <label for="login:">Screen name:</label>
  19. <%= form.text_field :login, :size =>20, :maxlength =>20 %>
  20. <br />
  21. </div>
  22. <label for="email:">Email Address:</label>
  23. <%= form.text_field :email, :size =>20, :maxlength => 50 %>
  24. <br />
  25. <div class="FormRow">
  26. <label for="password:">Password:</label>
  27. <%= form.password_field :password, :size =>20, :maxlength => 20 %>
  28. <br />
  29. </div>
  30. <div class="FormRow">
  31. <%= submit_tag "Register!", :class => "submit" %>
  32. </div>
  33. </fieldset>
  34. <% end %>
  35. --------------------------------------------------------------
  36. #USER CONTROLLER ... linked to create.html.erb view above ^^
  37. class UserController < ApplicationController
  38.  
  39. def index
  40. end
  41.  
  42. def destroy
  43. end
  44.  
  45. def create #this is used as register, the destroy is used when the user wishes to delete their account
  46. @title = "Register"
  47. if request.post? and params[:user]
  48. @user = User.new(params[:user])
  49. if @user.save
  50. render :text => "User Created!"
  51. end
  52. end
  53. end
  54. end
  55. -----------------------------------------------------------------
  56. # USER model
  57.  
  58. class User < ActiveRecord::Base
  59.  
  60. has_many :stories
  61. has_many :votes
  62. end
  63.  
  64. validates_uniqueness_of :login
  65. validates_length_of :login, :within => 5..20
  66. validates_length_of :password, :within => 5..20
  67. validates_length_of :email, :maximum => 50
  68. validates_length_of :name, :within => 2..30
  69. validates_presence_of :email, :login, :password
  70.  
  71.  
  72. validates_format_of :login,
  73. :with => /^[A-Z0-9_]*$/i,
  74. :message => "Can contain only letters," + "numbers and underscores [A-Z, 0-9, _]"
  75.  
  76.  
  77. validates_format_of :email,
  78. :with => /^[A-Z0-9._%-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i,
  79. :message => "Email address must be valid."
  80.  
  81.  
  82. def validate
  83. errors.add(:email, "Please enter a valid email address") unless email.include? ("@")
  84. if login.include?(" ")
  85. errors.add(:login, "Screen name cannot include spaces")
  86. end
  87. end
  88. -------------------------------------------------------------------
  89. #sessions controller, for the user session:
  90.  
  91. class SessionsController < ApplicationController
  92. def new
  93. end
  94.  
  95. def create
  96. @current_user = User.find_by_login_and_password(
  97. params[:login], params[:password])
  98.  
  99. if @current_user
  100. session[:user_id] = @current_user.id
  101. if session[:return_to]
  102. redirect_to session[:return_to]
  103. session[:return_to] = nil
  104. else
  105. redirect_to stories_path
  106. end
  107. else
  108. render :action => 'new'
  109. end
  110. end
  111.  
  112. def destroy
  113. session[:user_id] = @current_user =nil
  114. end
  115.  
  116. end
  117. ------------------------------------------------------------------------
  118. #create sessions view
  119.  
  120. <% form_tag session_path do %>
  121. <%= token_tag %>
  122. <p> Login in please. </p>
  123. <p>
  124. <label> Username:</lable>
  125. <%= text_field_tag 'login' %>
  126. </p>
  127. <p>
  128. <label> Password:</label>
  129. <%= password_field_tag 'password' %>
  130. </p>
  131. <p><%= submit_tag 'login' %></p>
  132. <% end %>
  133.  
  134. ------------------------------------------------------------------------
Add Comment
Please, Sign In to add comment