2017-03-13 11 views
0

新しい本の作成中に問題に直面しています。 ユーザーがログインしているが、まだそれは言う:1エラーで本の保存が禁止されています

1エラーが、私はそれが正常に動作しますが、私の本を編集した場合

  • ユーザーが

存在している必要があります

を保存してからこの本を禁じ私がしようとすると、

class BooksController < ApplicationController 
    before_action :find_book, only:[:show, :edit, :update, :destroy, :upvote] 
    before_action :authenticate_user! 
    def index 
    @books = Book.all.order('created_at DESC') 
    end 


    def show 
    end 

    def edit 
    end 

    def update 
    if @book.update(book_params) 
     redirect_to @book 
    else 
     render 'edit' 
    end 
end 
def destroy 
@book.destroy 
redirect_to root_path, notice: "successfully deleted" 
end 

def new 
    @book =Book.new 

end 

def create 
    @book =Book.new(book_params) 
    if @book.save 
     redirect_to @book 
    else 
     render 'new' 
    end 
end 

private 

def find_book 
    @book=Book.find(params[:id]) 
end 

    def book_params 
     params.require(:book).permit(:title, :description, :image) 
    end 
end 
:それはこれが本コントローラである.ERROR/

を示して新しいブックを作成します

私books.rbは次のとおりです。

class Book < ApplicationRecord 
    #Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-7.0.5-Q16' 
    has_attached_file :image, styles: { } 
    do_not_validate_attachment_file_type :image 
    #validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/ 
    belongs_to :user 
end 
+0

あなたは、この投稿のようなもので、エラーの原因を調べようとします:http://stackoverflow.com/a/42629794/6780663 –

+0

コードはどこですか?どのように我々は助けることができます? – Ursus

+0

'book'モデルに' user_id'があるようですが、 'book'に' user'が設定されていることを確認してください。あなたの質問に正しく答えるためには、より多くのコードが非常に便利です! –

答えて

2

おそらく、belongs_toのを持っている:あなたはそれを保存するときに、ユーザーとユーザーがブックに設定されていません。

あなたがこれを行うことができます:

belongs_to :user, :optional => true 

またはあなたがこれを行うことができます:あなたは質量を使用している場合

@user.books.save 

は、この

@book = Book.new 
@book.save   # No user provided. 

を行うとしていないがbook_paramsの:user_idまたは:userを大量割り当てで提出することができるように設定できることを確認してください。

+0

please、preferオプション:true、 'required'は非難されました – Ursus

+0

ああ、ありがとう。 – Swards

関連する問題