【问题标题】:Rails if referrer then do issueRails 如果推荐人然后做问题
【发布时间】:2011-07-13 03:05:59
【问题描述】:

我试图找出在控制器中围绕特定于 Rails 的引用者构建 if else if 语句的最佳方法。有没有办法拉出最后一个导轨路径并在下面的语句中使用它?我想我很接近但完全被难住了......

这是一个更新操作,将在站点上的多个位置从一个表单中触发。

我正在寻找替换“form_path”

def update
  @object = Milestone.find(params[:id])
    if @milestone.update_attributes(params[:milestone])
      if request.referer == form_path
        redirect_to root_path
      else
        redirect_to object2_path
      end
    else
      ....
    end
 end

【问题讨论】:

    标签: ruby-on-rails-3 referrer


    【解决方案1】:

    form_path 是您在控制器其他地方定义的变量吗?除了理解之外,它看起来应该可以工作。

    您可以根据其来源在表单中放置一个 hidden_​​field,并将其从 params 哈希中提取出来,而不是与 referer 混淆。

    类似:

    hidden_field_tag :location, controller_name
    

    然后在控制器中:

    if params[:location] == yadda yadda
    

    【讨论】:

    • 呵呵,很简单,呵呵,谢谢!
    • 这样做的问题是你仍然可以伪造表格。
    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多