由于从旧路径重定向到新路径,我添加到routes.rb:
Refinery::Core::Engine.routes.prepend do
get 'about.html', to: redirect('/about')
end
mount Refinery::Core::Engine, at: '/'
因此,它没有重定向到' / about'并提出NoMethodError:
NoMethodError - undefined method `valid_encoding?' for :en:Symbol:
actionpack (4.1.9) lib/action_dispatch/routing/redirection.rb:23:in `block in call'
actionpack(4.1.9)lib / action_dispatch / routing / redirection.rb:23:
req.symbolized_path_parameters.each do |key, value|
unless value.valid_encoding? # <= L23
raise ActionController::BadRequest, "Invalid parameter: #{key} => #{value}"
end
end
打开&#39; localhost:3000 / about.html&#39;
使用gems:refinerycms 3.0.0,rails 4.1.9
解决这个问题的任何想法?
答案 0 :(得分:0)
根据您发布的内容,您遗漏了一件事,那就是控制器代码。请在about_controller.rb中尝试以下内容。
def find_page
@page = ::Refinery::Page.find_by_link_url("/about")
end
答案 1 :(得分:0)
@ asgeo1最后我找到了另一个解决方案。我的解决方案是通过high_voltage创建静态页面。 我想在这种情况下无法跟上Refinery :: Pages的重定向和动态路由。
在routes.rb之后:
mount Refinery::Core::Engine, at: '/cms'
get 'about.html', to: redirect('/about')
如果您还需要通过Refinery :: Pages管理页面,请创建&#39; / about&#39;关于RefineryCMS的页面,
关注app / views / pages / about.html.erb:
<% @page = Refinery::Pages.find_by(link_url: '/about') %>
<%= raw @page.content_for(:body) %>