从视图中的不同视图访问图像与回形针宝石红宝石在铁轨上

时间:2013-09-13 04:05:07

标签: ruby-on-rails ruby controller paperclip

我是Ruby on Rails的新手并且正在学习它。我想在另一个视图中访问带有paperclip gem存储的图像的表,例如在我的应用程序中,我有原因控制器,我可以通过此代码访问存储在表中的视图中的图像:

 =image_tag @cause.images.first.image.url(:thumb), 

但我也可以访问,从配置文件控制器存储在表中的图像。那么,如何在视图中访问视图配置文件的对象?我尝试了原因控制器:

-> @profile = Profile.all -> =image_tag @profile.images.first.image.url(:thumb), 

但不行,所以朋友们,我该如何解决这个问题呢?感谢。

2 个答案:

答案 0 :(得分:0)

您正在将Profile.all发送到@profile,这意味着@profile将成为一个配置文件对象数组。您的方法图像将在Profile类的一个对象上工作,而不是在多个对象上。您需要选择正确的配置文件并将其分配给@profile。对于EX:

@profile = Profile.first # just taking the first profile, you can select any.

在视图中,现在您可以使用此@配置文件来获取图像。

答案 1 :(得分:0)

首先,在cause控制器中,复数@profile因为Profile.all将返回所有配置文件的数组。即将@profile = Profile.all更改为@profiles = Profile.all

因为@profiles是一个数组,所以需要遍历视图中的每个数组项原因:

<% @profiles.each do |profile| %>
  <%= image_tag profile.images.first.image.url(:thumb) %>
<% end %>

如果您只打算返回单个配置文件图像,则需要指定控制器中的配置文件。即。

@profile = Profile.first

或者原因模型属于配置文件模型:

@profile = Profile.find(params[:profile_id])