rails redirect_to analog



我正在使用Rails 3编写一个服务。该服务主要提供一些API方法,但也有一些特殊的网页为最终用户提供友好的界面——这些网页基本上是API的"掩护"。

所以我需要做的是在CoverController中做一点编码,然后重定向到API方法(不同的控制器)。这个方法需要通过POST调用,因为它包含一些最终用户不应该看到的敏感信息(例如访问令牌)。

正如我所理解的HTTP标准是不可能通过POST重定向,但我需要调用的方法只是相邻类中的另一个函数!是否有一种方法来调用它与一切(params等)正确设置,如果它是从浏览器调用?或者我应该使用Net::HTTP::Post并调用我自己?

你可以调用这个方法:# in controller

# action 1
def action1
  ...
  action2
end
# must be called via post
def action2
  ...
end
当然,前提是action2可以使用传递给action 1的现有参数列表。否则,也可以加满。
我想你想错了。Rails 3非常好,你可以调用动作,结果是基于你调用动作的方式。

小示例:一个返回当前时间的api:

def gettime
  @time = new Date
  # and do all other important stuff
  respond_to do |format|
    format.json { render json:  @time }
    format.html { render 'gettime' } # renders gettime.html.erb
  end
end
如果作为api调用

,它返回一个json对象。如果从浏览器调用,它将返回一个html页面。这样,您就不会重复代码,并且遵守操作由用户发起或重定向到另一个操作之后的规则。

其他开发人员也将理解你的代码,它将被准确地放置在它所属的位置。

BTW:没有这样的事情,"隐藏"合理的参数使用post。任何浏览器都可以通过一个快捷方式显示此信息。

相关内容

  • 没有找到相关文章

最新更新