ror4表单中的第一个参数不能包含nil或为空
当我点击编辑时我得到:表格中的第一个参数在bets / app / views / users / _form.html.erb中不能包含nil或为空
用户/ _form
prohibited this user from being saved:
在users_controller中
class UsersController < ApplicationController def new @user = User.new end def create @user = User.new(user_params) if @user.save flash[:notice] = "You have signed up successfully." redirect_to posts_path else render :new end end def show @user=User.find(params[:id]) end def update if @user.update(user_params) flash[:notice] = "Profile has been updated" redirect_to @user else flash[:alert] = "Profile has not been updated" render 'edit' end end def edit end def destroy @user = User.find(params[:id]) @user.destroy flash[:notice] = "Post has been destroyed." redirect_to posts_path end private def user_params params.require(:user).permit(:name,:password,:password_confirmation, :email) end end
在模型用户中
class User < ActiveRecord::Base has_secure_password end
在视图/编辑
Edit Profile
在视图/显示
Profile Page for
Email:
有什么问题,我该如何解决? ps:是rails 4
您应该在edit
操作中设置@user
实例变量:
def edit @user = User.find(params[:id]) end
您遇到此错误的原因是您将@user
实例变量作为参数传递给form_for
。 此变量的计算结果为nil
,因为您没有在edit
操作中设置它。
顺便说一下,你在update
操作中有类似的错误 – 我很确定如果你调用它会崩溃(“未定义的方法update
为nil
”)。 你应该插入行
@user = User.find(params[:id])
在update
操作的顶部。