0

我在渲染工作时遇到问题,我的路径是

/dashboard/models/new

如果验证失败,它应该使用

render :new

,但网址更改为

/models/new

没有适当的布局。使用

render :new, :layout => 'dashboard'

带回布局,但不带回路径。

我的路线.rb

match '/dashboard' => 'home#dashboard', as: :dashboard_home
scope '/dashboard' do
    resources :models, only: :new
end
root :to => 'home#index'

任何人都可以帮助我吗?提前致谢


我的控制器有很多代码,这部分是:

if model.save
    redirect_to "/dashboard/#{@model_type.to_s.downcase}s"
else
    flash.now[:error] = model.error.messages[:title]
    render :new, :layout => "dashboard"
end
4

1 回答 1

0

您可以尝试改用命名空间。

你的路由文件看起来像这样

namespace :dashboard do
  resources :models, :only => :new
end

在 form_for 标签中,您应该像这样向它发送命名空间

<%= form_for [:dashboard, @model] do |f| %>

不确定这是否回答了您的问题。

于 2013-05-02T08:29:25.417 回答