Rails Paperclip使用引用id插入查询

时间:2016-03-16 17:53:32

标签: ruby-on-rails paperclip

我正在尝试从Paperclip插值系统中的另一个表中检索字段。 到目前为止,当我使用现有的参考号如3时,它正在工作,但是当我尝试使用container_id引用字段时,它将无效,即使它保存在数据库中

Rails显示此错误:

undefined local variable or method `container_id' for Paperclip::Interpolations:Module

表格

<%= form_for @upload, :remote => true, :authenticity_token => true do |f| %>
  <p>
    <%= f.label :file %><br />
    <%= f.file_field :file %>
    <%= f.hidden_field :container_id, value: @page.container.id %>
  </p>
  <p><%= f.submit "submit"%></p>
<% end %> 

模型

Paperclip.interpolates('container') do |attachment, style|
  attachment.instance.get_container(container_id).to_s
end

def get_container(container_id)
  return Container.find(container_id).url
end

有没有办法查询另一个表并使用Paperclip插值字段?

1 个答案:

答案 0 :(得分:0)

这是因为container_id不在你正在使用的方法范围内(插值)

您有权访问的是attachment.instance。

如果@upload是一个模型,我建议你将container_id添加为一列,然后你可以这样做:

Paperclip.interpolates('container') do |attachment, style|
  attachment.instance.container.url.to_s
end

我不知道是不是因为您需要提供更多信息,例如所涉及的模型和关联。像Container类

希望有所帮助