无法将图片解析为URL:未定义的方法“ to_model”

时间:2018-12-21 11:18:24

标签: ruby-on-rails ruby carrierwave

我收到此错误:

var pageX = 0,
pageY = 0;

var moveIt = function() {
    L1.attr({ d: "M "+circleX+" "+circleY +"L "+pageX+" "+pageY });
    var totalLength = L1.getTotalLength();

    if (totalLength < circleRadius) {
        smallEyeCircle.attr({ cx: pageX, cy: pageY });
    } else {
        var PAL = L1.getPointAtLength(circleRadius);
        smallEyeCircle.attr({ cx: PAL.x , cy: PAL.y });
    }
    setTimeout(moveIt, 1000/25);
};

$(document).on('mousemove', function(e) {
    pageX = e.pageX;
    pageY = e.pageY;
}).one('mousemove', moveIt);

我正在使用载波导轨,当我检查表单时,如下所示:

Can't resolve image into URL: undefined method `to_model' for #<PortfolioUploader:0x007fd1538a2a60>
Did you mean?  to_xml

在我的表单上:

  <% @portfolios.each do |portfolio_item| %>
  <p><%= portfolio_item.title %> </p>
  <p><%= image_tag portfolio_item.thumb_image unless portfolio_item.thumb_image.nil? %> </p>
  <p><%= portfolio_item.body %> </p>
  <p><%= link_to "Edit", edit_portfolio_path(portfolio_item) if logged_in?(:site_admin)%></p>
  <p><%= link_to "Delete", portfolio_path(portfolio_item), method: :delete, data: { confirm: 'Are you sure?' } if logged_in?(:site_admin)%></p>
  <% end %>

在我的模型上,我将ff:

<%= render 'form', portfolio: @portfolio %>




 <div class="field">
    <%= f.file_field :main_image %>
  </div>

  <div class="field">
    <%= f.file_field :thumb_image %>
 </div>

知道我想念什么吗?

4 个答案:

答案 0 :(得分:2)

我想应该是

<%= image_tag portfolio_item.thumb_image.url unless portfolio_item.thumb_image.nil? %>

答案 1 :(得分:0)

通常我是这样

<%= image_tag(portfolio_item.thumb_image_url) unless portfolio_item.thumb_image.nil? %>

答案 2 :(得分:0)

即使没有上传图片,这也对您来说非常合适:

<%= image_tag(portfolio_item.thumb_image_url) if portfolio_item.thumb_image_url %>

注意:如果没有图片或没有图片上传,if语句是为了避免错误。

仅此而已。

我希望这会有所帮助

答案 3 :(得分:0)

如果您刚刚升级到 Rails 5.2,image_tag 的行为在 Rails 5.1 和 5.2 之间发生了变化。

在 Rails 5.1 中,您可以传递一个上传器对象,如所问的问题:

# Rails 5.1
image_tag(portfolio_item.thumb_image)

但在 Rails 5.2 中,image_tag 现在需要一个 url:

# Rails 5.2
image_tag(portfolio_item.thumb_image_url)