質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

4845閲覧

商品出品機能実装中に発生した<undefined method `current_scope' for Charge:Class>のエラーを解決したい

piroshki470

総合スコア0

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2020/12/30 16:38

編集2020/12/31 07:05

Ruby on Rails でフリマアプリを実装中です。商品出品機能を実装している最中で
以下エラーが出てしまいました。

イメージ説明

<items_controller.rb> class ItemsController < ApplicationController before_action :move_to_signed_in, except: [:index] def index @item = Item.all end def new @item = Item.new end def create @item = Item.new(item_params) @item.save redirect_to root_path end private def move_to_signed_in unless user_signed_in? redirect_to '/users/sign_in' end end def item_params params.require(:item).permit(:name, :image, :introduction,:price,:category_id,:status_id,:charge_id,:prefecture_id,:ship_date_id).merge(user_id: current_user.id) end end
<migrationファイル> class CreateItems < ActiveRecord::Migration[6.0] def change create_table :items do |t| t.references :user ,null: false ,foreign_key: true t.string :image ,null: false t.string :name ,null: false t.text :introduction ,null: false t.integer :price ,null: false t.integer :category_id ,null: false t.integer :status_id ,null: false t.integer :charge_id ,null: false t.integer :prefecture_id ,null: false t.integer :ship_date_id ,null: false t.timestamps end end end
<Itemモデル <Item.rb> class Item < ApplicationRecord extend ActiveHash::Associations::ActiveRecordExtensions belongs_to :category belongs_to :status belongs_to :charge belongs_to :prefecture belongs_to :ship_date has_one_attached :image belongs_to :user has_one :buy_record with_options presence: true do validates :image validates :name validates :introduction validates :price validates :category_id, numericality:{ other_than: 1 } validates :status_id, numericality:{ other_than: 1 } validates :charge_id, numericality:{ other_than: 1 } validates :prefecture_id, numericality:{ other_than: 1 } validates :ship_date_id, numericality:{ other_than: 1 } end end
<Chargeモデル> class Charge < ActiveHash::Base self.data = [ { id: 1, name: '--' }, { id: 2, name: '着払い(購入者負担)' }, { id: 3, name: '送料込み(出品者負担)' }, ] end include ActiveHash::Associations has_many :items

【エラー内容を調べた結果】
current_scopeメソッドが定義されていない、というエラーであるようでしたが、current_scopeメソッドを検索してもそれらしいものはなく、どのように定義するのか教えていただけますでしょうか?
@item.saveの部分を消してみたりしましたが、出品ボタンを押した後、出品情報が保存されないという状態になってしまったので、やはりこのエラーを解決しなければいけないと考えております。

イメージ説明
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/12/31 00:31

コードは画像では誰も手元で現象を確認できませんので、テキストで、マークダウンのcode機能にてご提示ください。再現するため、なのでモデル定義やマイグレーション(もしくはテーブル定義)も必要です。
m.ts10806

2020/12/31 00:32

あとエラー内容でそのまま検索して出てくる内容で何が足りなかったかも具体的に記載してください。 (どう調べて何を見て何を試してどうなったから、解決しなかったか)
piroshki470

2020/12/31 03:58

アドバイスありがとうございます。 修正してみました。見かけたらまた宜しくお願いします。
winterboum

2020/12/31 06:22

item のsave で Charge のエラーが出ています。 model ItemとChargeのcodeを載せることはできますか?
piroshki470

2020/12/31 07:05

ありがとうございます。記載しました。
piroshki470

2020/12/31 08:48

undefined method `has_many' for main:Object ありがとうございます。次にこのエラーが出たので調べてみます。
guest

回答2

0

自己解決

新たに出たエラーはbelongs_to_active_hashを使用する際はアソシエーションにhas_manyを使用しないことで解決できました。アドバイス下さった方々ありがとうございました。

投稿2020/12/31 12:08

piroshki470

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

belongs_to_active_hash :charge
にしてみてください

投稿2020/12/31 07:28

winterboum

総合スコア23549

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問