我完全不知所措!我第一次使用了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
它出错了
param缺失或值为空:book
def book_params params.require(:book).permit(:name, :author, :anotation) end
如果我尝试使用params和book_params方法公开(:book),它似乎没问题,但在提交表单后,所有字段都是零。我究竟做错了什么? params定义有什么错误吗?我一直在思考和尝试不同的变种很多次,我无法想象问题出在哪里。我们将不胜感激!
答案 0 :(得分:1)
我找到了!有&#34; attribures :: book_params&#34;而不是&#34; params :: book_params&#34;
答案 1 :(得分:0)
如果从
更改控制器中的第4行,会发生什么 expose(:book, finder_parameter: :id, params: :book_params)
到
expose(:book, params: :book_params)
?