Html 在Rails中加载注册页时自动填充表单字段

Html 在Rails中加载注册页时自动填充表单字段,html,ruby-on-rails,erb,Html,Ruby On Rails,Erb,我有此注册表单代码(控制器添加在下面): 尽管我设置了占位符(占位符:“…”),但当我加载页面时,它会自动填充一些个人值-电子邮件+密码。 用于创建用户的控制器代码如下所示: class UsersController <ApplicationController before_action :set_user, only: [:show, :edit, :update, :destroy] before_action :require_user, only: [:

我有此注册表单代码(控制器添加在下面):


尽管我设置了占位符(占位符:“…”),但当我加载页面时,它会自动填充一些个人值-电子邮件+密码。

用于创建用户的控制器代码如下所示:

class UsersController <ApplicationController

    before_action :set_user, only: [:show, :edit, :update, :destroy]
    before_action :require_user, only: [:edit, :update]
    before_action :require_same_user, only: [:edit, :update, :destroy]

    def show
        @articles = @user.articles.paginate(page: params[:page], per_page: 2)
    end

    def index
        @users = User.paginate(page: params[:page], per_page: 2)
    end

    def new
        @user = User.new
    end


    def edit
    end

    def update
        if @user.update(user_params)
            flash[:notice] = "Your account information was successfully updated."
            redirect_to @user
        else
            render 'edit'
        end

    end


    def create
        @user = User.new(user_params)
        if @user.save
            session[:user_id] = @user.id
            flash[:notice] = "Welcome to the Alpha Blog #{@user.username}, you have successfully signed up."
            redirect_to articles_path
        else
            render 'new'
        end
    end

    def destroy
        @user.destroy
        session[:user_id] = nil if @user == current_user
        flash[:notice] = "Account and all associaed articles successfully deleted."
        redirect_to articles_path
    end


    private
    def user_params
        params.require(:user).permit(:username, :email, :password) #whitelisting
    end

    def set_user
        @user = User.find(params[:id])
    end

    def require_same_user
        if current_user != @user && !current_user.admin?
            flash[:alert] = "You can only edit or delete your own profile"
            redirect_to @user
        end
    end
end
class users控制器
form\u with(model:@user,
使用
@user
变量中的任何内容构建表单

假设您有这样一个用户:

$@user=user.first
> #
在这种情况下,带有
字段的表单_将使用表单中的现有记录值

如果已在此视图的控制器操作中创建了新用户:

$@user=user.new
> #
那么表单字段应该为空

如何测试这是否是问题:

将您的
@user
替换为
用户。新建


在原始帖子中添加了它。谢谢。谢谢。在控制器中创建了一个新用户,名为user.new(如您所述)。我用控制器更新了原始帖子。但是,它还是被填充了。这没什么大不了的。它可能是chrome,因为我在Safari中看到的一些教程没有。
class UsersController <ApplicationController

    before_action :set_user, only: [:show, :edit, :update, :destroy]
    before_action :require_user, only: [:edit, :update]
    before_action :require_same_user, only: [:edit, :update, :destroy]

    def show
        @articles = @user.articles.paginate(page: params[:page], per_page: 2)
    end

    def index
        @users = User.paginate(page: params[:page], per_page: 2)
    end

    def new
        @user = User.new
    end


    def edit
    end

    def update
        if @user.update(user_params)
            flash[:notice] = "Your account information was successfully updated."
            redirect_to @user
        else
            render 'edit'
        end

    end


    def create
        @user = User.new(user_params)
        if @user.save
            session[:user_id] = @user.id
            flash[:notice] = "Welcome to the Alpha Blog #{@user.username}, you have successfully signed up."
            redirect_to articles_path
        else
            render 'new'
        end
    end

    def destroy
        @user.destroy
        session[:user_id] = nil if @user == current_user
        flash[:notice] = "Account and all associaed articles successfully deleted."
        redirect_to articles_path
    end


    private
    def user_params
        params.require(:user).permit(:username, :email, :password) #whitelisting
    end

    def set_user
        @user = User.find(params[:id])
    end

    def require_same_user
        if current_user != @user && !current_user.admin?
            flash[:alert] = "You can only edit or delete your own profile"
            redirect_to @user
        end
    end
end