我已经搜索并尝试了http://guides.rubyonrails.org/routing.html中提到的许多不同的东西,但没有接缝来做我想要的.
要点:我有一个控制器,可以设置不同手机类型的视图
class PhoneViewsController < ApplicationController
def android_automated
#Do Android Stuff
end
def android_interactive
#Do Android Stuff
end
def ios_automated
#Do Apple Stuff
end
def ios_interactive
#Do Apple Stuff
end
def blackberry_automated
#Do Blackberry Stuff
end
def blackberry_interactive
#Do Blackberry Stuff
end
end
Run Code Online (Sandbox Code Playgroud)
上面的每个方法在phone_views视图文件夹中都有一个相应的视图部分
我希望像/ android/interactive这样的网址被读为phone_views#android_interactive
Rails路由具有允许我使用诸如的参数重定向的语法
get 'android/:action', to: redirect('/phone_views/android_%{action}')
get 'phone_views/:action' , :controller => 'phone_views'
Run Code Online (Sandbox Code Playgroud)
这呈现正确的页面,但具有时髦网址的令人讨厌的副作用
我试过这个并将其用作:
get 'android/:mode', :to => 'phone_views#android_%{mode}'
Run Code Online (Sandbox Code Playgroud)
但我得到一个动作%{mode}未找到错误,好像它没有看到%{mode}作为变量
get 'android/:action', :controller => 'phone_views', :action => 'android_%{action}'
Run Code Online (Sandbox Code Playgroud)
导致错误操作"交互式"找不到,并且:
get 'android/:mode', :controller => …Run Code Online (Sandbox Code Playgroud)