0
强参数我有此控制器Rails:param丢失或值为空。在控制器
class StoresController < ApplicationController
before_filter :authenticate_business!, :except => [:index, :show]
def index
#@stores = Store.paginate(:page => params[:page])#, :per_page => 8)
if params[:query].present?
@stores = Store.search(params[:query], page: params[:page])
else
@stores = Store.all.page params[:page]
end
end
def show
@store = Store.friendly.find(params[:id])
if request.path != store_path(@store)
redirect_to @store, status: :moved_permanently
end
end
def new
@store = Store.new
end
def create
@store = Store.new(store_params)
@store.business_id = current_business.id
if @store.save
redirect_to @store
else
render 'new'
end
end
def edit
@store = Store.friendly.find(params[:id])
end
def update
@store = Store.friendly.find(params[:id])
if @store.update(store_params)
redirect_to @store
else
render 'edit'
end
end
def destroy
@store = Store.friendly.find(params[:id])
@store.destroy
redirect_to stores_url
end
private
def store_params
params.require(:store).permit(:name, :description, :address, :telephone, :email, :website)
end
end
和与表单创建一个新的存储的图。
<%= form_for @store do |f| %>
.......
code
......
<% end %>
的问题是,当我提交表单,它给了我这个错误“参数丢失或为空值:店”,在指向行“params.require(:店).permit(:名称,描述,地址,电话,电子邮件,网站)“
任何想法来解决这个问题? 谢谢。
您可以在提交表单时显示来自浏览器的响应标题吗?此外,你的表单中的字段与控制器中的参数相关吗? – Jax 2014-10-02 11:14:25
是的,表单中的字段与'store_params'函数相同。 请求参数\t { “UTF8”=> “✓”, “authenticity_token”=> “vdBK16ZwnqAPWtqTOlNjA5lBIHnW9Vb5WkpbOYhoCrQ =”, “提交”=> “添加存储”, “行动”=> “创建”, “控制器”=> “stores”} – 2014-10-02 11:23:02
在您发布的内容之下,您应该看看您提交的内容是否具有任何值,它位于表单数据下,应该如下所示:name:xxxxxxx,description:xxxxxx,还要确保所有字段这个位对应于你允许的参数 – Jax 2014-10-02 11:28:09