用户提交url,通过scaffold create方法将其放入article.url中。我可以像这样解析网址:
def parse_url
elements = @article.url.split("/")
if(elements[0] == "http:")
@home = elements[2] #elements[1] will be an empty string because of the // in the URL
else
@home = elements[0]
end
end
我更愿意做的是在用户使用create方法保存url之后解析url,然后将此值插入到article表中数据库的新行中。
答案 0 :(得分:2)
我会使用以下内容:
class Article
attr_accessor :unparsed_url
before_validation_on_save :parse_url
private
def parse_url
return unless unparsed_url
elements = unparsed_url.split("/")
if(elements[0] == "http:")
self.home = elements[2]
else
self.home = elements[0]
end
end
end
您在Rails表单中使用unparsed_url。使用这样的虚拟属性可以很好地处理表单验证。