Rails 6
simple_form
bootstrap 4

Saya memiliki tabel, di views/books/index.htmlslim saya, yang ingin saya tambahkan simple_form, sebagai berikut:

table.table.table-striped
  thead
    tr
      th Name
  tbody
    - @books.each do |book|
      tr
        td = book.name

= simple_form_for(@book) do |f|
  .form-inputs
    = f.input :book_name

  .form-actions
    = f.button :submit

Namun, saya mendapatkan pesan kesalahan, memberi tahu saya:

ActionView::Template::Error (undefined method `model_name' for nil:NilClass):

Dengan asumsi karena ini adalah tampilan Indeks. Bagaimana cara memperbaikinya?

Sunting:

Untuk memperjelas, ketika saya mengirimkan formulir, saya ingin itu pergi ke buku tindakan pengontrol baru, bukan tindakan indeks, jadi saya mencari yang setara dengan:

= form_with url: new_book_url do |f|
0
EastsideDev 11 Maret 2020, 09:06

1 menjawab

Jawaban Terbaik

Anda perlu menyetel variabel instan @book dalam tindakan index Anda:

def index
  @book = Book.new
  # rest of the code, setting @books etc.
end
1
Marek Lipka 11 Maret 2020, 06:45