开发者

Recognizing route with regex?

开发者 https://www.devze.com 2023-04-06 19:21 出处:网络
Let\'s say that I开发者_StackOverflow have a postback url that comes in as http://domain/merkin_postback.cgi?id=987654321&new=25&total=1000&uid=3040&oid=123

Let's say that I开发者_StackOverflow have a postback url that comes in as

http://domain/merkin_postback.cgi?id=987654321&new=25&total=1000&uid=3040&oid=123

and other times as:

http://domain/merkin_postback.php?id=987654321&new=25&total=1000&uid=3040&oid=123

If my route definition is

map.purchase '/merkin_postback', :controller => 'credit_purchases', :action => 'create'

it barks that either of the two forms above is invalid.

Should I be using regex to recognize either of the two forms?


This isn't a routing issue, it's a content format issue. You should be using respond_to.

class CreditPurchasesController < ActionController::Base
  # This is a list of all possible formats this controller might expect
  # We need php and cgi, and I'm guesses html for your other methods
  respond_to :html, :php, :cgi

  def create
    # ...
    # Do some stuff
    # ...

    # This is how you can decide what to render based on the format
    respond_to do |format|
      # This means if the format is php or cgi, then do the render
      format.any(:php, :cgi) { render :something }

      # Note that if you only have one format for a particular render action, you can do:
      #   format.php { render :something }
      # The "format.any" is only for multiple formats rendering the exact same thing, like your case
    end
  end
end
0

精彩评论

暂无评论...
验证码 换一张
取 消