2016-04-18 8 views
1

Ich bin völlig ratlos! Ich benutze decent_exposure gem zum ersten Mal und ich nehme an, dass das Problem darin liegt. Das ist der Link https://github.com/hashrocket/decent_exposure Wenn ich mein Formular abschicke, spart es nichts. Alle meine Tabelle in der Datenbank sind nur voll von leeren Feldern. Das ist meine FormWie speichern Sie ein Objekt nach dem Senden mit decent_exposure?

<%= simple_form_for book do |f| %> 
    <%= f.input :name %> 
    <%= f.input :author %> 
    <%= f.input_field :annotation %> 
    <%= f.button :submit %> 
<% end %> 

Das ist mein Controller ist:

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 

Es gibt einen Fehler

param fehlt oder der Wert leer ist: Buch

def book_params 
    params.require(:book).permit(:name, :author, :anotation) 
    end 

Wenn ich versuche, die Methode expose (: book) ohne params und book_params auszugeben, scheint es in Ordnung zu sein, aber nach dem Absenden des Formulars sind alle Felder gleich Null. Was mache ich falsch? Gibt es einen Fehler bei der Definition von Params? Ich habe viele Male viele verschiedene Varianten gedacht und getestet, und ich kann mir nicht vorstellen, wo das Problem liegt. Jede Hilfe wäre willkommen!

+0

Ich habe es gefunden! Es gab "attributes:: book_params" anstelle von "params:: book_params" – Jakov

Antwort

0

Was passiert, wenn Sie Linie 4 in Ihrem Controller ändern von

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

zu

expose(:book, params: :book_params)?

+0

Es ist immer noch der gleiche Fehler "param fehlt oder der Wert ist leer: book" ( – Jakov

1

Ich habe es gefunden! Es gab "attributes:: book_params" anstatt "params:: book_params"

Verwandte Themen