1
私のショーページでは、変数の値に基づいて 'もっと見る'ボタンのルートを変更したいと思います。例えば、私がショーページのフロリダのフロリダにある建物を見て、「もっと見る」をクリックすると、再びタンパの建物の完全なリストを見るためにlocations_tampa_pathに行きたいと思います。しかし、私はリンクにパスをしたいと思い、その特定の建物の都市に基づいて変更するには:Rails変数をルートに渡す方法
このような何か:location_#{@location.city}_path
最良の方法は何ですかこれをする?
ご協力いただきありがとうございます。
私のコントローラ:
class LocationsController < ApplicationController
def index
@locations = Location.all
end
def new
@location = Location.new
end
def create
@location = Location.new(location_params)
if @location.save
flash[:notice] = "New location added"
redirect_to root_path
else
flash.now[:error] = 'Cannot send message'
render 'new'
end
end
def jacksonville
@locations = Location.where(:city => "Jacksonville")
end
def stpetersburg
@locations = Location.where(:city => "St. Petersburg")
end
def orlando
@locations = Location.where(:city => "Orlando")
end
def tampa
# @location = Location.find(params[:id])
@locations = Location.where(:city => "Tampa")
@photo = Photo.new
end
def show
@location = Location.find(params[:id])
@photo = Photo.new
end
private
def location_params
params.require(:location).permit(:name, :description, :address, :city, :featured)
end
end
ルート
get 'locations/tampa', to: 'locations#tampa'
get 'locations/jacksonville', to: 'locations#jacksonville'
get 'locations/orlando', to: 'locations#orlando'
get 'locations/st_petersburg', to: 'locations#stpetersburg'
resources :locations do
resources :photos, only: :create
end
ター:あなたの
LocationsController
でシンプルなshow_location
アクションを持つことができますあなたは素早い応答のためにあなたをnkしてください!私はroutes.rbファイルから関連するコードを投稿しましたが、私はまだRailsを学んでいますが、このような設定はまだ使用していません。これがどういう仕組みか、私の頭の中で少し説明できますか?都市の別々の行動を取り除くことを提案していますか? – halfacreyumこれをもっと理解したら、私のコードを実装してこれを実装することが大好きです。私は既存のコードでこの作業を行うことができました:location_path(@ location.city.downcase)、これは理想的ではないと確信しています今のところ働いています。 – halfacreyum