O intermediário não dá uma indicação quando os artigos vinculados ao seu site estão corrompidos. Exemplos da causa são a digitação incorreta do caminho do arquivo, exclusão do (s) artigo (s) vinculado (s) e renomeação do arquivo do artigo.
Usar este auxiliar de link para vincular artigos gerará um erro nas seguintes situações:
- Quando o caminho relativo especificado está faltando um ‘/’ inicial.
- Quando o caminho relativo especificado está faltando um final ‘/’.
- Quando um artigo não existe para o caminho relativo.
def link_to_article(relative_path)
raise ArgumentError, "Argument #{relative_path} is missing beginning '/'" unless relative_path.start_with?('/')
raise ArgumentError, "Argument #{relative_path} is missing ending '/'" unless relative_path.end_with?('/')
article = blog.articles.detect { |a| a.url == relative_path }
raise ArgumentError, "Argument #{relative_path} doesn't exist" unless article.present?
link_to article.data.title.titleize, article.url, title: "Read article: #{article.data.title.titleize}"
end
Alternativamente, se você deseja que o auxiliar não seja restritivo nas barras:
def link_to_article(relative_path)
relative_path.insert(0, '/') unless relative_path.start_with?('/')
relative_path << '/' unless relative_path.end_with?('/')
article = blog.articles.detect { |a| a.url == relative_path }
raise ArgumentError, "Argument #{relative_path} doesn't exist" unless article.present?
link_to article.data.title.titleize, article.url, title: "Read article: #{article.data.title.titleize}"
end