2013-07-08 22 views
7

Tôi có ứng dụng đường ray 4 sử dụng phát minh. Tôi đang cố gắng cho phép người dùng có tên người dùng được liên kết với họ.Thêm tên người dùng để tạo đường ray 4

Tôi đã thêm một cột tên người dùng (string) vào bảng Users, và có ứng dụng của tôi điều khiển cái nhìn như thế này:

class ApplicationController < ActionController::Base 

    before_filter :configure_permitted_parameters, if: :devise_controller? 
    protect_from_forgery with: :exception 
    protected 
    def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) } 
    end 

end 

và tôi tôi cũng đã thêm một lĩnh vực cho tên người dùng trên những người sử dụng/trang sign_up.

Nhưng tôi nhận được lỗi này:

undefined local variable or method `devise_parameter_sanitizer' for #<Devise::RegistrationsController:0x00000101378a28> 

Vì vậy, về cơ bản câu hỏi của tôi là tại sao lỗi này xuất hiện, hoặc làm thế nào khác tôi có thể có được một người sử dụng để có được một tên người dùng?

Cảm ơn tất cả trợ giúp!

Trả lời

16

Bạn chỉ cho phép tên người dùng được phép trên phương thức đăng nhập, nhưng tôi giả sử khi bạn tạo người dùng mới, đó là phương pháp đăng ký. Vì vậy hãy thử này:

def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } 
end 

Nguồn: https://github.com/plataformatec/devise#strong-parameters

+0

nhờ mà làm việc. – infinity

+1

Tôi đang làm điều này trong application_controller của tôi và tôi có thể đăng ký và đăng nhập (ngay sau khi đăng ký). Nhưng tôi không thể đăng nhập từ trang đăng nhập. Tôi có thiết lập khóa đăng nhập/xác thực cho tên người dùng và tôi có các trường tên người dùng và mật khẩu trong cơ sở dữ liệu. Bất kì manh mối nào? Đây là phiên bản chi tiết hơn về vấn đề của tôi - http://stackoverflow.com/questions/18804971/devise-rails-4-not-able-to-login –

Các vấn đề liên quan