我的模型看起来像这样:
class Listdomain < ActiveRecord::Base
attr_accessible :domainname, :permalink
before_create :make_it_permalink
validates_presence_of :domainname
private
def make_it_permalink
self.permalink = SecureRandom.base64(8)
end
end
尝试在参数localhost:3000/1-oKPgT0s0S+U=
上加入id和永久链接,并且它可以正常工作
#routes.rb
match ':id' => 'homes#whoisresult', :as => :whois
#controller
def whoisresult
@listdomain = Listdomain.find(params[:id])
@domaintld = @listdomain.domainname
end
#model
def to_param
[id, permalink].join("-")
end
尝试在params localhost:3000/domainuser.com
上使用域名并且它可以正常工作
#routes.rb
match ':domainname' => 'homes#whoisresult', :as => :whois, :constraints => { :domainname => /[^\/]+/ }
#controller
def whoisresult
@listdomain = Listdomain.find_by_domainname(params[:domainname])
@domaintld = @listdomain.domainname
end
我希望使用to_param加入域名和固定链接,如下所示:
localhost:3000/permalink-domainname
永久链接:oKPgT0s0S+U=
域名:domainuser.com
加入-
#routes.rb
match ':permalink' => 'homes#whoisresult', :as => :whois, :constraints => { :permalink => /[^\/]+/ }
#controller
def whoisresult
@listdomain = Listdomain.find_by_permalink(params[:permalink])
@domaintld = @listdomain.domainname # line 34
end
#model
def to_param
[permalink, domainname.downcase].join("-")
end
我试过get =&gt; localhost:3000/oKPgT0s0S+U=-domainuser.com
我收到了这样的错误消息
undefined method `domainname' for nil:NilClass
app/controllers/homes_controller.rb:34:in `whoisresult'
如何在to_param上加入域名和永久链接?
答案 0 :(得分:0)
@listdomain = Listdomain.find_by_permalink(params[:permalink])
返回空结果。因此,请检查params[:permalink]
以确保传递正确的永久链接,并检查数据库中是否有Listdomain
,并且该永久链接。