2012-07-26 61 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

它喜好的问题,接你发现无论风格的使用和阅读效果更好。第一个好处是,你不必做任何任务,但它不是真正重要的(除非你的代码是在一个视图中,在这里你应该避免的任务 - 但这是另一个话题)