##実現したい事
Bookingコントローラーでcreateした時の値を現在はクエリパラメータに乗せてデータを渡し、遷移先のコントローラーでクエリパラメータを受け取るように形で遷移寺のデータ受け渡しをしているが、それを継承で渡せるようにしたい。
##困っている事
継承の文法については知っているが、どのように書けば良いか分からないです。。
BookingsControllerと ExperiencesControllerを用いて、どのように書けばよりかご教示いただけると幸いです。
ruby
1#継承の一般的な書き方。 2class SuperMyClass 3end 4 5class MyClass < SuperMyClass 6end
ruby
1#BookingsController 2class BookingsController < ApplicationController 3 def create 4 @booking = Experience.new(menu_params) 5 #下記のparamをexperiencesControllerのshowに継承したい。 6 param = params[:experience][:booking_course_name].gsub(/[^\d]/, "").to_i 7 redirect_to experience_path(params[:experience][:host_id],experience: param) 8 end 9end
ruby
1#ExperiencesController 2class ExperiencesController < ApplicationController 3 4 def show 5 @user = User.find(params[:id]) 6 @bookings = Experience.all 7 @booking = Experience.new 8 @course = ["60分コース", "120分コース", "180分コース", "240分コース"] 9 end 10end
##追記
クエリパラメータ以外にもグローバル変数を使い力技で,他のコントローラーに変数の中身を渡してみました。
ruby
1class BookingsController < ApplicationController 2def create 3 @booking = Experience.new(menu_params) 4 $ccc = params[:experience][:booking_course_name] 5 param = params[:experience][:booking_course_name].gsub(/[^\d]/, "").to_i 6 redirect_to experience_path(params[:experience][:host_id],experience: param) 7 end 8end 9$a = $ccc
ruby
1#ExperiencesController 2class ExperiencesController < ApplicationController 3 4 def show 5 @@kei = $a #グローバル変数で無理くり取得した 6 @user = User.find(params[:id]) 7 @bookings = Experience.all 8 @booking = Experience.new 9 @course = ["60分コース", "120分コース", "180分コース", "240分コース"] 10 end 11end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/05 05:20
2019/04/05 14:00
2019/04/05 14:37