我完全不知所措!我第一次使用decent_exposure gem,我想问题出在它身上。那是链接https://github.com/hashrocket/decent_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
它给出了一个错误
参数缺失或值为空:book
def book_params params.require(:book).permit(:name, :author, :anotation) end
如果我尝试仅在没有参数和 book_params 方法的情况下公开(:book),这似乎没问题,但在提交表单后,所有字段都为零。我究竟做错了什么?参数定义有什么错误吗?我一直在思考和尝试不同的变体很多次,我无法想象问题出在哪里。每一个帮助将不胜感激!