我使用Linkedin gem来获取RoR 3的个人资料信息。
一切都有效,除非我到达名称中带破折号的房产。
<%=position.title %>
正确显示,但<%= position.start-date %>
在NoMethodError
- Users#show
中返回undefined method start
。
我尝试过不同的操作,例如&#34; startDate&#34;,&#34; start_date&#34;,引用&#34;开始日期&#34;但没有一个有效。
是否有正确的方法来逃避属性名称中的破折号/连字符?
答案 0 :(得分:0)
ERB中的表达式将被解析为从调用position函数的start()方法的结果中减去日期变量的值。连字符在Ruby中的标识符中无效。
我不熟悉LinkedIn gem提出的解决方案,除了说因为它基于XML API,你应该寻找一种手动从标签对中提取数据的方法。大多数相似的宝石都提供这样的方法。此外,这是使用IRB作为探索工具的一个很好的案例:启动IRB会话,看看在正确创建位置变量之后调用position.methods时会发生什么。我的猜测是,你会在列表中看到一些暗示答案的内容。
答案 1 :(得分: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。