イベント、会議、タスクリスト、およびタスクアイテムのモデルがあります。 TaskListはEventおよびMeetingと多相関係にあります。たTaskItemは、以下の私のルートに見られるように、タスクリストにネストされている:関係の非多相側からのリダイレクト
concern :has_task_lists do
resources :task_lists, only: [:new, :index, :create, :show]
end
resources :events, concerns: :has_task_lists do
collection { post :import }
end
resources :meetings, concerns: :has_task_lists
resources :task_lists do
resources :task_items, only: [:new, :index, :create] do
member do
patch 'complete'
end
end
end
作成する方法が原因で、コントローラは、多型のルートを処理する方法の背面たTaskItemのビューにリダイレクトすることができません。エラーがたTaskItemコントローラ
task_items_controller
def create
@task_item = @task_list.task_items.new(task_item_params)
if @task_item.save
redirect_to @task_list, notice: "Item Created"
end
end
task_lists_controller
def load_listable
klass = [Event, Meeting].detect { |c| params["#{c.name.underscore}_id"]}
@listable = klass.find(params["#{klass.name.underscore}_id"])
end
にload_listable方法を指すとこれは関係のない多型側から送信されているとしてのklassを有していない要求のためです。私がそれを動作させる唯一の方法は、redirect_to:backを行うことです。これは、部分的なモーダルであるため、task_itemの表示ページにリダイレクトされないので望ましくありません。
私の質問は基本的には、どのようにcreateメソッドが呼び出されているか、まったくリダイレクトされていないtask_item showページにリダイレクトすることができますか?
あなたは ''(task_item @ @ task_list、)redirect_toのtask_list_task_item_pathを試みたことがありますか? – engineersmnky
私はしました、それは働いていましたが、リダイレクトしたいページではありませんでした。それは私をtask_itemインデックスに持って行きますが、私はtask_listにルーティングしたいのですが、表示 – Yoklan
あなたのポストを少し書き直してみましょう。タスクリストではなくTaskItemにリダイレクトしたいと思っているようです。それはparamsの追加変数としてクラスを渡すことによって、 'redirect_to tasklist_path(@ tasklist.id、klass:@ tasklist.task_list_type)'のようなことができるはずだと言われています。 – engineersmnky