主页上的Rails 4模态form_tag注册表单

时间:2013-07-28 00:00:13

标签: ruby-on-rails

我在尝试通过模态窗口从我的主页提交注册表单时收到错误“param not found:user”。

ActionController::ParameterMissing in UsersController#create
param not found: user

def user_params
    params.require(:user).permit(:email, :password, :password_confirmation)
end

这是传入的参数。

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"eXXn7+Rsf4SLciRPn4RW8Lw+3u6/FJZi8IW2XxekYsU=",
 "email"=>"asdf@asdf.com",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "commit"=>"Sign up"}

这是users_controller.rb

class UsersController < ApplicationController

def new
  user = User.new
end

def create
  user = User.new(user_params)
  if user.save
    auto_login(user)
    redirect_to root_path
  else
    render :new
  end
end

    private

        def user_params
            params.require(:user).permit(:email, :password, :password_confirmation)
        end
end

一切看起来都不错,但显然有些不对劲。有人有主意吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你需要将你的参数嵌套看起来像这样:

{
  "user" =>
    {
      "email" => ...
    }
}

使用form_for可以更轻松地执行此操作,但您可以使用form_tag命名输入来执行相同操作:

<input name="user[email]">
<input name="user[password]">

在erb中你可以使用:

<%= text_field_tag 'user[email]' %>