4 ruby ruby-on-rails carrierwave
我收到此错误:
Can't resolve image into URL: undefined method `to_model' for #<PortfolioUploader:0x007fd1538a2a60>
Did you mean? to_xml
Run Code Online (Sandbox Code Playgroud)
我正在使用carrierwave rails,当我检查我的表单时,如下所示:
<% @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 %>
Run Code Online (Sandbox Code Playgroud)
在我的表格上:
<%= render 'form', portfolio: @portfolio %>
<div class="field">
<%= f.file_field :main_image %>
</div>
<div class="field">
<%= f.file_field :thumb_image %>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的模型上,我放了 ff:
mount_uploader :thumb_image, PortfolioUploader
mount_uploader :main_image, PortfolioUploader
Run Code Online (Sandbox Code Playgroud)
知道我错过了什么吗?
jib*_*i31 12
image_tag如果您刚刚升级到 Rails 5.2,则 Rails 5.1 和 5.2 之间的行为会发生变化。
在 Rails 5.1 中,您可以传递上传者对象,就像所提出的问题一样:
# Rails 5.1
image_tag(portfolio_item.thumb_image)
Run Code Online (Sandbox Code Playgroud)
但在 Rails 5.2 中,image_tag现在需要一个 url:
# Rails 5.2
image_tag(portfolio_item.thumb_image_url)
Run Code Online (Sandbox Code Playgroud)
我想应该是
<%= image_tag portfolio_item.thumb_image.url unless portfolio_item.thumb_image.nil? %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8138 次 |
| 最近记录: |