我已经在Stack Overflow和Google上对此事进行了广泛的研究,但没有找到任何结论。由于我对Rails中的API使用概念完全陌生,我不得不提出一些建议。
我已按照the github page
的程序进行操作我在application_helper.rb中包含了Unsplash帮助程序,如下所示
def show_photo
Unsplash::Photo.find("tAKXap853rY")
end
并简单地添加
<%= image_tag show_photo %>
在我看来。
这会返回一个对象(所以连接性很好)
<img src="/images/#<Unsplash::Photo:0x007fc4b2f953c0>" alt="#
<unsplash::photo:0x007fc4b2f953c0>">
我知道Rails正在资产/图片文件夹中寻找图片
如何解析入站JSON并在我的Rails视图中呈现它?
答案 0 :(得分:0)
您可以访问Photo对象中OpenStruct属性中的urls键,其中包含raw
,full
,regular
,small
和thumb
尺寸,也作为钥匙。
所以,只是为了测试你可以使用raw
,例如:
<%= image_tag Unsplash::Photo.find('tAKXap853rY')[:urls][:raw] %>
或者我认为你可以修改你的方法来接受一个参数,它是图像的大小键,如:
module ApplicationHelper
def show_photo(size)
Unsplash::Photo.find("tAKXap853rY")[:urls][size.to_sym]
end
end
然后:
<%= show_photo('raw') %> # 'full', 'regular', etc ...
答案 1 :(得分:0)
对于这个解决方案,我试图通过使用user.name方法显示摄影师的名字。 在控制台中,我可以得到以下内容:
photo = Unsplash::Photo.find("tAKXap853rY")
photo.user.name
会回来 =&GT; &#34; Alejandro Escamilla&#34;。
但在RAILS:
def show_photo(size)
@photo =Unsplash::Photo.find("tAKXap853rY")[:urls][size.to_sym]
end
只是尝试在我的视图中显示名称,如:
<%= @photo.user.name %> will return "user undefined method".
.user.name可以在控制台中访问,但不能在rails中访问!我错过了什么?感谢