2012-07-26 65 views

回答

2

的兩種方式調用get方法最終做同樣的事情。你可以用你喜歡的方式使用它。它允許你傳遞一個塊的第一種方式可能對編寫更簡潔和/或可讀的代碼很有用。它取決於你選擇適合你的需求。舉個例子,

agent = Mechanize.new 

agent.get(url) do |page| 
    item = page.forms.first do |form| 
    form.fieldname = "foo" 
    end.submit 
    # do something with item 
end 

其內容優於

page = agent.get(url) 
form = page.forms.first 
form.fieldname = "foo" 
item = agent.submit(form).body 
#do something with item 

同一案件做機械化的初始化時適用。我喜歡

@agent = Mechanize.new { |agent| 
    agent.user_agent_alias = 'Mac Safari' 
    agent.follow_meta_refresh = true 
    agent.redirect_ok = true 
} 

@agent = Mechanize.new 
@agent.user_agent_alias = 'Mac Safari' 
@agent.follow_meta_refresh = true 
@agent.redirect_ok = true 

}

+0

所以,唯一的好處就是可讀性? – Aljaz 2012-07-31 14:35:18

2

它喜好的問題,接你發現無論風格的使用和閱讀效果更好。第一個好處是,你不必做任何任務,但它不是真正重要的(除非你的代碼是在一個視圖中,在這裏你應該避免的任務 - 但這是另一個話題)