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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

0回答

1861閲覧

出品者が売却済み商品の編集済みページに直接URLを入力しても遷移できないようにしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/12/14 03:07

前提・実現したいこと

furimaアプリの実装中です。
URLを直接入力しても編集ページに遷移しないよう制限をかけたいです。

発生している問題・エラーメッセージ

ログイン状態で、出品者が売却済みの商品の編集ページに直接URLを入力するとトップページに遷移するように実装したいのですが、今の記述だと編集ページに遷移できてしまいます。

該当のソースコード

class OrdersController < ApplicationController before_action :set_order before_action :authenticate_user! before_action :move_to_index def index @order_address = OrderAddress.new end def create @order_address = OrderAddress.new(order_params) if @order_address.valid? pay_item @order_address.save redirect_to root_path else render :index end end private def order_params params.require(:order_address).permit(:postcode, :prefecture_id, :city, :block, :building, :phone).merge(item_id: params[:item_id], user_id: current_user.id, token: params[:token]) end def pay_item Payjp.api_key = ENV["PAYJP_SECRET_KEY"] Payjp::Charge.create( amount: @item.price, card: order_params[:token], currency: 'jpy' ) end def set_order @item = Item.find(params[:item_id]) end def move_to_index unless current_user && @item.order == nil redirect_to root_path end end end

試したこと

editアクションやupdateアクションの記述しましたが、解決に至りませんでした。
また、検索結果からmove_to_indexの部分の記述を@item.user_id == current_user.id || @item.order == ! nilも試してみましたが変更なしでした。よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

MasaSakano

2021/12/16 16:52

このソースにはeditもupdateメソッドもありません。つまり、編集ページ自体、どんな状況であれエラーになりませんか? Controllerにindexとcreateしか存在しないのだから。これで、編集ページを表示できてしまうことがそもそも不思議です。もしこれで動いているならば、Rails標準ではない複雑なことをしているのでしょうし、その場合は、情報が大いに不足しています。少なくともルートとviewがないと状況がわかりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問