0

我正在使用 Linkedin gem 来提取 RoR 3 的个人资料信息。

除非我到达名称中带有破折号的属性,否则一切正常。

<%=position.title %>正确显示但<%= position.start-date %>返回NoMethodErrorin Users#show- undefined method start

我尝试了不同的操作,例如“startDate”、“start_date”、“start-date”周围的引号,但都没有奏效。

是否有适当的方法来转义属性名称中的破折号/连字符?

4

2 回答 2

0

ERB 中的表达式将被解析为从调用位置对象的 start() 方法的结果中减去日期变量的值。连字符在 Ruby 中的标识符中无效。

我对 LinkedIn gem 不够熟悉,无法提出解决方案,只是说由于它基于 XML API,因此您应该寻找一种方法来手动从标签对中提取数据。大多数类似的宝石都提供了这种方法。此外,这是将 IRB 用作探索性工具的一个很好的例子:启动一个 IRB 会话,看看当你调用 position.methods 时会发生什么,当然是在正确创建位置变量之后。我的猜测是,您会在该列表中看到一些暗示答案的内容。

于 2012-04-22T18:04:52.027 回答
0

看起来它返回一个转换键的 Hashie::Mash,还有一些额外的规则: https ://github.com/pengwynn/linkedin/blob/master/lib/linked_in/mash.rb

你说你已经试过了position.start_date对吧?那应该行得通。但如果没有,您是否尝试过position['start-date']或者position['start_date']这两个中的一个也应该可以工作,因为它是一个 Mash。

于 2012-11-29T21:26:14.007 回答