【发布时间】:2015-01-20 05:40:47
【问题描述】:
请帮我解决以下错误。
错误:
ActionController::ParameterMissing in CustmersController#create
param is missing or the value is empty: users
当我提交数据时,这个错误来了。
我的代码如下
views/customers/new.html.erb
<h1>Enter your data here</h1>
<center>
<%= form_for @users,:url => {:action => 'create'} do |f| %>
<% if @users.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@users.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @users.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<p>
<label for="name">Name:</label>
<%= f.text_field :name,placeholder:"Enter your name",:class => "input-field" %>
</p>
<p>
<label for="email">Email:</label>
<%= f.email_field :email,placeholder:"Enter your email",:class => "input-field" %>
</p>
<p>
<label for="phone">Phone no:</label>
<%= f.telephone_field :phoneno,placeholder:"Enter your phone number",:class => "input-field" %>
</p>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
<%= link_to "BACK",custmers_index_path %>
</center>
控制器/客户控制器.rb
class CustmersController < ApplicationController
def index
end
def new
@users=Custmer.new
end
def show
end
def create
@users=Custmer.new(user_params)
if @users.save
flash[:notice]="You have signed up successpully"
flash[:color]="valid"
redirect_to :action => 'index'
else
flash[:alert]="You have not signed up successfully"
flash[:color]="invalid"
render :new
end
end
private
def user_params
params.require(:users).permit(:name,:email,:phoneno)
end
end
model/customer.rb
class Custmer < ActiveRecord::Base
EMAIL_REGEX = /\A[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\z/i
validates :name,presence:true,length: { minimum: 5 }
validates :email, :presence => true, :uniqueness => true, :format => EMAIL_REGEX
validates :phoneno, presence: true,length: {minimum: 10}
end
我使用的是 rails version-4.2.0 和 ruby version-1.9.3。请帮我解决这个错误。
【问题讨论】:
-
是的,它正在工作@Arup。谢谢伙计。但我可以说你以前的方法也有效。在使用之前我已经成功了很多次。
标签: ruby ruby-on-rails-4