get 'dashboard', to: 'dashboard#index'
get 'dashboard/pending', to: 'dashboard#index'
get 'dashboard/live', to: 'dashboard#index'
get 'dashboard/sold', to: 'dashboard#index'
def index
...
if params[:pending]
# pending related stuff
end
if params[:live]
# live related stuff
end
if params[:sold]
# sold related stuff
end
...
end
我正在使用类似的东西,但阅读一些评论可能会误导或反模式。 在config/routes.rb中: get 'dashboard/:action_name' => 'dashboard#index' 然后在app/controller/dashboard_controller.rb中:
def index
...
action_name = request.original_url.split('/').last
case action_name
when "pending"
# pending related stuff
when "live"
# live related stuff
when "sold"
# solde related stuff
else
# else related stuff
end
...
end
2条答案
按热度按时间bgtovc5b1#
为什么不只有一个路由和一个控制器动作,并根据传递给它的参数来区分功能?
config/routes.rb:
app/controller/dashboard_controller.rb
视图中的链接
<%= link_to "Pending", dashboard_path(pending: true) %>
<%= link_to "Live", dashboard_path(live: true) %>
<%= link_to "Sold", dashboard_path(sold: true) %>
t98cgbkg2#
我正在使用类似的东西,但阅读一些评论可能会误导或反模式。
在config/routes.rb中:
get 'dashboard/:action_name' => 'dashboard#index'
然后在app/controller/dashboard_controller.rb中:
这里唯一的问题是,我不知道如何适合您的第一个选项**(没有一个动作名称)**在这个解决方案。
希望对你有用。