■分からないこと
link_toでページ遷移をする際にコントローラーで値をチェックして遷移後のviewに値を渡したいと思っているのですが、コントローラーのbyebugが上手く機能しまず、ターミナルで止まることなくページ遷移されてしまいます。
ログを見るかぎりでは対象のコントローラーを通過しているはずなのですが、何故なのか教えていただきたいです。
■ルーティング
get 'clients', to:'clients#index', as: :clients_index get 'clients/derivery_date', to:'clients#derivery_date', as: :derivery_date post 'clients/derivery_date', to:'clients#create_derivery_date'
■遷移前のview
clients#index.html.erb
<%= link_to "登録", derivery_date_path %>
■遷移後のview
clients#derivery_date.html.erb
<table class="table table-hover table-responsive"> <thead class="thead"> <tr> <th class="order_date">注文日</th> <th class="sale_shop">購入先</th> <th class="name">氏名</th> </tr> </thead> </table>
■コントローラー
clients_controller
def derivery_date @clients = Client.where(deleted: false) byebug @products = Product.find_by(id: params[:product_id]) @sales = Sale.find_by(id: params[:sale_id]) end def create_derivery_date byebug @client = Client.find_by(id: params[:client_id]) if @client.update(derivery_date) flash[:success] = "登録が完了しました" redirect_back(fallback_location: derivery_date_url) else flash[:danger] = "入力に不備があります" render "clients/derivery_date" end end
byebugを書いた後にファイルをセーブしていますか?
はい、セーブはしています。
byebug の代わりに binding.pry(もしくは binding.irb)を書いてみるとどうなりますか?
どちらも止まることなくページ遷移してしまいます。。。
間違いなくそのメソッドを通過している証明が欲しいので、インスタンス変数にありあえない値を入れて意図的にエラーを起こせますか?
raise でエラーを起こしてもいいです。
def derivery_date
@clients = hoge
byebug
@products = Product.find_by(id: params[:product_id])
@sales = Sale.find_by(id: params[:sale_id])
end
このようにしましたが何事もなく遷移されました。
コントローラーを通過してないということでしょうか?
そうなりますね。
privateに同じ名前を使ってたのが原因でした。
privateの名前を変えたら解決しました。
お手数おかけしました。またありがとうございました!
回答1件
あなたの回答
tips
プレビュー