首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用decent_exposure提交对象后保存对象?

如何在使用decent_exposure提交对象后保存对象?
EN

Stack Overflow用户
提问于 2016-04-18 20:53:43
回答 2查看 145关注 0票数 1

我完全不知所措!我第一次使用decent_exposure gem,我想问题就在这里。这是链接exposure当我提交我的表单,它没有保存任何东西。我在数据库中的所有表都是空字段。这是我的表格

代码语言:javascript
复制
<%= simple_form_for book do |f| %>
    <%= f.input :name %>
    <%= f.input :author %>
    <%= f.input_field :annotation %>
    <%= f.button :submit %>
<% end %>

这是我的控制器:

代码语言:javascript
复制
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方法,它似乎是可以的,但是在提交表单之后,所有字段都是空的。我做错了什么?配角定义有什么错误吗?我已经思考和尝试了很多次不同的变体,我无法想象问题在哪里。所有的帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2016-04-18 21:57:52

我找到了!有“属性::book_params”而不是"params::book_params“

票数 1
EN

Stack Overflow用户

发布于 2016-04-18 21:12:05

如果将控制器中的第4行更改为

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

expose(:book, params: :book_params)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36704101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档