アプリのコンセプトであるコミュニティの投稿機能にて、コミュニティを作成,投稿しようとしたところこのようなエラーが発生しました。
undefined method `published?'のpublishedの記述は間違って書いてしまっているのかなと思いましたが、'published'という記述は見つけることができず、エラーの意味もよくわかりません。
何かご指摘願います。
<communities_controller.rb>
class CommunitiesController < ApplicationController before_action :set_community, only: [:edit, :show, :update] def new @community = Community.new end def create @community = current_user.communities.build(community_params)#ストロングパラメータを呼び出す if @community.save redirect_to communities_path(@community), notice: "投稿に成功しました。" else render :new end end def edit if @community.user_id != current_user.id redirect_to communities_path, alert: '不正なアクセスです。' end end def index @communities = Community.all end def show end def update if @community.update(community_params) redirect_to communities_path(@community), notice: "投稿に成功しました。" else render :edit end end def destroy community = Community.find(params[:id]) community.destroy redirect_to communities_path end private def community_params params.require(:community).permit(:title, :introduction, :intro_image)#ストロングパラメータを定義 end def set_community @community = Community.find(params[:id]) end end
<routes.rb>
Rails.application.routes.draw do devise_for :users # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html root to: "communities#index" resources :users resources :communities do resource :follows, only: [:create, :destroy] end resources :mypage, only: [:profile] do member do get 'profile' get 'posted_community' get 'followed_community' end end end
<community.rb>
class Community < ApplicationRecord belongs_to :user attachment :intro_image has_many :follows, dependent: :destroy with_options if: :published? do validates :title, presence: true validates :introduction, presence: true # 複数valitatesをまとめたい場合はwith_optionsを使用(published?はメソッド名またはmodelのboolean項目) end end
モデルのcommunity.rb があやしいです。
追記してください。
回答2件
あなたの回答
tips
プレビュー