我完全不知所措!我第一次使用decent_exposure gem,我想问题就在这里。这是链接exposure当我提交我的表单,它没有保存任何东西。我在数据库中的所有表都是空字段。这是我的表格
<%= simple_form_for book do |f| %>
<%= f.input :name %>
<%= f.input :author %>
<%= f.input_field :annotation %>
<%= f.button :submit %>
<% end %>这是我的控制器:
class BooksController < ApplicationController
before_filter :is_admin?
before_filter :authenticate_user!
expose(:book, finder_parameter: :id, params: :book_params)
#I've tried both expose(:book) and expose(:books)
def create
if book.save
redirect_to(book)
else
render :new
end
end
def update
if book.save
redirect_to(book)
else
render :edit
end
end
def show
end
def is_admin?
if current_user.admin?
true
else
render :text => 'Registrate'
end
end
def book_params
params.require(:book).permit(:name, :author, :annotation)
end
end它犯了一个错误
param丢失或值为空: book def book_params params.require(:book).permit(:name,:author,:anotation)结束
如果我尝试只公开(:book)而不使用params和book_params方法,它似乎是可以的,但是在提交表单之后,所有字段都是空的。我做错了什么?配角定义有什么错误吗?我已经思考和尝试了很多次不同的变体,我无法想象问题在哪里。所有的帮助都将不胜感激!
发布于 2016-04-18 21:57:52
我找到了!有“属性::book_params”而不是"params::book_params“
发布于 2016-04-18 21:12:05
如果将控制器中的第4行更改为
expose(:book, finder_parameter: :id, params: :book_params)
至
expose(:book, params: :book_params)?
https://stackoverflow.com/questions/36704101
复制相似问题