前提・実現したいこと
noteに似たものを作ろうとしており、
scaffledを利用して画像の投稿機能を追加したいです。
情報が不足していれば、足すので教えてください。
素人質問で恐縮ですが、どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
wrong number of arguments (given 3, expected 2; required keyword: object) <%= f.attachment_field :image, class: "input" %>
該当のソースコード
app/controllers
notes_controller.rb
class NotesController < ApplicationController before_action :authenticate_user!, except: [:index] def new @note = Note.new end def create @note = current_user.notes.build(note_params) if @note.save redirect_to note_path(@note), notice: "ノートを投稿しました。" else render :new end end def index @notes = Note.all.order(id: "DESC") end def show @note = Note.find(params[:id]) end def edit @note = Note.find(params[:id]) if @note.user != current_user redirect_to notes_path, alert: "不正なアクセスです。" end end def update @note = Note.find(params[:id]) if @note.update(note_params) redirect_to note_path(@note), notice: "ノートを更新しました。" else render :edit end end def destroy note = Note.find(params[:id]) note.destroy redirect_to user_path(note.user), notice: "ノートを削除しました。" end private def note_params params.require(:note).permit(:title, :body, :image, :comment) end end
app/models
notes.rb
class Note < ApplicationRecord attachment :image belongs_to :user with_options presence: true do validates :title validates :body validates :image end end
app/views/notes
new.html.erb
<section class="hero is-success"> <div class="hero-body"> <div class="container"> <h1 class="title"> 新規ノート作成 </h1> </div> </div> </section> <% if @note.errors.any? %> <div class="notification is-danger"> <h2><%= pluralize(@note.errors.count, "error") %> prohibited this object from being saved: not successfully</h2> <ul> <% @note.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <section class="section"> <div class="container"> <div class="columns is-centered"> <div class="column is-6"> <%= form_for @note do |f| %> <div class="field"> <%= f.label :title, "ノート名", class: "label" %> <%= f.text_field :title, class: "input" %> </div> <div class="field"> <%= f.label :body, "ノート", class: "label" %> <%= f.text_area :body, class: "textarea" %> </div> <div class="field"> <%= f.label :image, "写真", class: "label" %> <%= f.attachment_field :image, class: "input" %> </div> <%= f.submit '投稿', class: "button is-success" %> <% end %> </div> </div> </div> </section>
補足情報(FW/ツールのバージョンなど)
Rails 6.1.4.1
ruby 3.0.2
あなたの回答
tips
プレビュー