1

我完全不知所措!我第一次使用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),这似乎没问题,但在提交表单后,所有字段都为零。我究竟做错了什么?参数定义有什么错误吗?我一直在思考和尝试不同的变体很多次,我无法想象问题出在哪里。每一个帮助将不胜感激!

4

2 回答 2

1

我找到了!有“属性::book_params”而不是“参数::book_params”

于 2016-04-18T21:57:52.453 回答
0

如果您将控制器中的第 4 行从

expose(:book, finder_parameter: :id, params: :book_params)

expose(:book, params: :book_params)?

于 2016-04-18T21:12:05.147 回答