Örnek değişkenine bağlı olarak görünümü nasıl değiştirirsiniz?

Bu etki alanı arama işlemini gerçekleştirdim:

def domain
country_codes = ['.dk', '.com', '.eu', '.net', '.org', '.biz', '.info', '.nu', '.name', '.se', '.fi', '.net', '.de', '.it'] # etc. could move this to a config if needed
@domain = params[:domain]
@results = {}
country_codes.each do |cc|
  @results[cc] = Whois.whois(@domain + cc)
end
  render :layout => false
end

[: domain] params ise "asdasdasd" veya "bir şey" ise, varsayılan görünümü oluşturmak istiyorum.

Ancak, params [: domain] , "asdasd.dk" veya "asdasdasd.com" örneğiyse, bu eylemi oluşturmak ve etki alanı paramlarını bu eyleme göndermek istiyorum:

def domainname
@tld = "get the tld" 
country_codes = [@tld]
@results = Domains.order("#{@tld} ASC")
country_codes.each do |cc|
  @results[cc] = Whois.whois(@domain + cc)
end
  render :layout => false
end
0

2 cevap

Daha önce bir süzgeç yazmak istedim, ama bir düşünceden sonra, bir eylem yapmak daha DRY olacak ...

def domain
  codes = get_tld(params[:domain]) || country_codes
  codes.each do |c|
    @results[c] = Whois.whois(@domain + c)
  end
    render :layout => false
  end
end

# return array with one element if matched, else nil
def get_tld(string)
  country_codes.each{|cc| return [cc] if string.end_with?(cc)}
  nil
end

#contry_codes should be defined somewhere else...

Ne @results = Domains.order'ın ("# {@ tld} ASC") ne yapması gerektiğini anlamıyorum, ancak param içerisinde tld durumunda sonuçlarla bir şeyler yapmanız gerekiyorsa, kodları her zaman kontrol edebilirsiniz. boyut == 1

0
katma

Paramomlar her iki eylemde de mevcuttur, onları ikinci yönteme "göndermeniz" gerekmez; zaten oradalar.

Koşullarınız karşılanırsa ikinci yöntemi çağırmanız yeterlidir, aksi halde zaten ne yapıyorsanız onu yapın.

0
katma
[: Domain] paramlarının TLD'ye sahip olduğunu nasıl kontrol ederim?
katma yazar Rails beginner, kaynak
Apidoc'taki dokümanları sırala ; Bunu yapmanın bir sürü yolu var. Not listenizle karşılaştırıldığında ek TLD'ler olduğunu unutmayın; bu önemli olabilir veya olmayabilir.
katma yazar Dave Newton, kaynak