成功登录后如何提交表格

时间:2015-04-20 05:55:54

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 devise

我正在使用rails 4.2和ruby 2.2.0p0,我需要提交属于用户表的表单,一旦用户进行身份验证并进行身份验证我正在使用设计,我是否需要手动创建用户控制器和查看

我在控制器和其他视图下创建了两个名为my_devise的目录。我跟着this 对于我采取的方法。我得到“uninitalized constant MyDeviseController”错误。这是我修改过的文件列表。

my_devise / registrations_controller.rb

class MyDevise::RegistrationsController < Devise::RegistrationsController

 def update
    @user = current_user
    if @user.update_attributes(user_params)
      # Handle a successful update.
    else
      redirect_to 'my_devise/registrations'
    end
  end

  private

    def user_params
      params.require(:user).permit(:title, :font, :description,
                                   :bgcolor)
    end 

end

my_devise / registration.html.erb

<%= form_for :user, @user, :url => url_for(:controller => 'registrations', :action => 'update') do |u|%>
 <br > 
 <p>
    <%= u.label :title %><br>
    <%= u.text_field :title %>
  </p>

  <p>
    <%= u.label :description %><br>
    <%= u.text_field :description %>
  </p>

  <p> <%= u.label :back_ground_color %><br>
    <select name="bgcolor" id="bgcolor">
        <option value="#FF3300">Orange</option>
        <option value="#00FF00">Green</option>
        <option value="#0000FF">Blue</option>
        <option value="#FF0066">Pink</option>
        <option value="#FFFF00">Yellow</option>
        <option value="#FFFFFF">White</option>
    </select>
  </p>

  <p>
    <%= u.label :font %><br>
    <select name="font" id="font">
        <option value="Times New Roman">Times new Roman</option>
        <option value="Verdana">Verdana</option>
        <option value="Arial">Arial</option>
        <option value="sans-serif">serif</option>
    </select>
  </p>

 <br >
  <p>
    <%= u.submit %>
  </p>
  <hr >
  <div style="background: #{current_user.bg_color};"></div>
  <div style="background-color:#{current_user.font.nil? ? '#FFFFFF' : current_user.font}">
    This is the changes made in background
  </div>

<div style="background-color:#{current_user.bgcolor.nil? ? '#FFFFFF' : current_user.bgcolor}">

  </div>

<% end %> 

的routes.rb

  devise_for :users, :controllers => {:registrations => "my_devise/registrations"}
  devise_scope :user do
    authenticated :user do
      root :to => 'my_devise#registration', as: :authenticated_root
    end
    unauthenticated :user do
      root :to => 'devise/registrations#new', as: :unauthenticated_root
    end
  end

schema.rb

ActiveRecord::Schema.define(version: 20150420060137) do

  create_table "users", force: :cascade do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.text     "title"
    t.text     "font"
    t.string   "bgcolor"
    t.text     "description"
  end

1 个答案:

答案 0 :(得分:0)

您需要做的是在注册后想要重定向到其他页面。设计提供了很棒的教程:

How To Redirect to a specific page on successful sign up

有关更多教程,请访问:

https://github.com/plataformatec/devise/wiki/How-Tos

如果您遇到任何在实施时无法搜索的错误或问题,请在此处发布。

相关问题