簡體   English   中英

Rails:從一個控制器動作重定向到另一個(非GET)

[英]Rails: Redirecting from one controller action to another (non-GET)

我有一個GET路由,在呈現視圖之前,Controller會檢查可選參數。 如果有,我想繞過渲染視圖,直接“重定向”到另一個控制器動作。 另一個動作是PUT路由,我意識到我們不能像重定向到GET路由那樣簡單地重定向到PUT路由。

到目前為止,這大致就是我嘗試過的方法,但是我不知道如何調用重定向,因為使用PUT是不可能的。 也許有一些不同的設計模式來處理這種行為? 提前致謝。

Controller actions:

def foo      
  if 'XYZ'
    # "redirect" to bar
  else
    render 'view'
  end
end

#bar is a PUT route
def bar 
  ...
end

如果你有你的路線bar行動是這樣的

match '/controller/bar/' => 'controller#bar'

修改像

match '/controller/bar/' => 'controller#bar' , :via => [:get,:post,:put]

如果您只想在滿足條件的情況下使用bar方法

def foo      
  if 'XYZ'
    bar
  else
    render 'view'
  end
end

這將運行bar方法,並利用其中的任何重定向。 您更有可能想重新檢查您要達到的目標。

如果您可以提供更多詳細信息,那么您將獲得更好的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM