私は次のコントローラーを持っています(かなり基本的です)。
class ActivityTypesController < ApplicationController
respond_to :html
def show
@model=ActivityType.find(params[:id])
respond_with @model
end
def new
@folder = Folder.find(params[:folder_id])
@model = @folder.activity_types.build
respond_with @folder, @model
end
def create
@folder = Folder.find(params[:folder_id])
@model = @folder.activity_types.build(params[:activity_type])
if @model.save
flash[:notice] = 'hoorraaaaayyy'
end
respond_with @folder, @model, location: root_path
end
def edit
@folder = Folder.find(params[:folder_id])
@model = ActivityType.find(params[:id])
respond_with @folder, @model
end
def update
@folder = Folder.find(params[:folder_id])
@model = @folder.activity_types.find(params[:id])
if @model.update_attributes(params[:activity_type])
flash[:notice] = 'yeeeeaaaaaaah'
end
respond_with @folder, @model, location: root_path
end
興味深いことに、アクション:location
内のオプション#create
は無視されますが、 では受け入れ#update
られます。
なぜそうなのか、私にはわかりません。さらに奇妙なことに、 :location
withinを削除すると、ビューにリダイレクトするのではなく、アクション#create
にとどまってビューをレンダリングするように見えます。#update
edit
#show
この問題を追跡する方法を知っている人はいますか?