我有两条路由,对同一资源采取新操作:individual_trainings
:
new_backend_trainer_ind_training GET /backend/people/:id/trainers/:trainer_id/individual_trainings/new(.:format) backend/individual_trainings#new
new_backend_individual_training GET /backend/individual_trainings/new(.:format) backend/individual_trainings#new
如何指定应呈现的new
类型?如果我使用render :new
,请始终重定向到第二条路线。我不想使用redirect_to
,因为我无法处理表单错误。知道如何做到这一点(我需要在创建动作中render :new
)。也许是另一个新的创造行动?
更新:
我认为new_backend_trainer_ind_training
中的simple_form存在问题:
= simple_form_for([:backend, @individual_training]) do |f|
它会生成错误的网址。是不是?
答案 0 :(得分:1)
如果你想这样做(相同动作的两个路由),那么你可以将路径传递给simple_form:
= simple_form_for(@individual_training, url: new_backend_trainer_ind_training_path) do |f|
但是,这是一种使用不同路由导致相同操作的错误方法。如果这是一种不同的行为,那么您应该使用new/create
动作创建另一个控制器。