特定のページのメタ タグを変更するレーキ タスクがあります。
desc 'changes the meta tags'
task mixup_meta_tags: :environment do
meta_tags = ['index','noindex','index,nofollow','nofollow,noindex']
new_tag = meta_tags.sample(1)[0]
#
#iterate through html docs
base = 'app/views/site'
pages = ['home','about','products','pricing']
pages.each do |page|
filename = base + '/' + page + '.html.haml'
text = File.read(filename)
current_tag = Nokogiri::HTML(File.open(filename, "r")).xpath("//meta[@name='robots']").first["content"]
File.open(filename, "w") { |file| file << text.gsub(current_tag,new_tag)}
end
end
不可解なエラー メッセージが表示されます。
nil:NilClass の未定義メソッド `[]'
この行について:
current_tag = Nokogiri::HTML(File.open(filename,"r")).xpath("//meta[@name='robots']").first["content"]
この行は、(次のコード行を介して) 置き換えられるように、現在のタグが何であるかを把握することになっています。
ここで不適切な点について何かアドバイスはありますか?