Ruby on rails Rails将_重定向为不工作,重定向为显示而不是自定义操作
因此,我有一个聊天控制器,从我的索引操作,我试图重定向到一个自定义操作,“decision”: …其中@choice将由decise页面上表单的参数决定。但出于某种原因,Rails没有重定向以决定,而是重定向以显示:Ruby on rails Rails将_重定向为不工作,重定向为显示而不是自定义操作,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,redirecttoaction,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Redirecttoaction,因此,我有一个聊天控制器,从我的索引操作,我试图重定向到一个自定义操作,“decision”: …其中@choice将由decise页面上表单的参数决定。但出于某种原因,Rails没有重定向以决定,而是重定向以显示: Started GET "/chats/decide" for 127.0.0.1 at 2012-03-14 17:13:36 -0400 Processing by ChatsController#show as HTML Parameters: {"id"=>"
Started GET "/chats/decide" for 127.0.0.1 at 2012-03-14 17:13:36 -0400
Processing by ChatsController#show as HTML
Parameters: {"id"=>"decide"}
..............
有人能解释一下如何解决这个问题吗
编辑:
我想这就是你想要的。。。my routes.rb的相关部分:
match "chats/decide" => "chats#decide"
resources :chats do
member do
post 'send_message'
end
end
get "chats/logout"
…是的,这有点大杂烩:/看来您正在努力实现以下目标:
- 查找与给定搜索字符串匹配的所有聊天
- 如果找到1个聊天室,请重定向到该聊天室
- 如果找到2个以上的聊天记录,请重定向到
,以便用户可以选择一个/chats/decise
resources :chats do
member do
post :send_message
end
collection do
get :decide # Produces the '/chats/decide/' route
end
end
1) 更新routes.rb如下:
resources :chats do
member do
post :send_message
end
collection do
get :decide # Produces the '/chats/decide/' route
end
end
2) 将您的聊天#决定操作更改为:
def decide
@chats = session[:chats]
end
3) 当您在decise.html.erb文件中列出可用聊天时,请将它们直接链接到相应的show
链接
4) 在聊天索引中明确说明您的重定向:
redirect_to :controller => 'chats', :action => 'decide'
您的聊天#决定操作不应根据是否接收到
id
而做出不同的响应。您可以直接链接到该视图中的特定聊天室。显示您的路线。rb文件您是否试图让/chats/decise/:id
工作?那么为什么“收集”可以工作呢?与“member do”或类似get“chats/actionname”的内容相反,collection希望列出一组对象,从而提供路由/chats/decise
member
希望列出单个对象,从而提供路由/chats/:chat\u id/decise
。