param丢失或值为空:photo:dragonfly gem

时间:2014-08-29 02:46:49

标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller dragonfly-gem

我想在我的目标网页上显示我通过蜻蜓宝石上传的特定图片。

我收到以下错误:param is missing or the value is empty: photo

这就是我在landing.html.erb视图中的内容:

<%= image_tag @photo.1.image.thumb('150x185#').url if @photo.1.image_stored? %>

这就是我在页面控制器上的内容:

class PagesController < ApplicationController

    def landing
        @photo = Photo.find(photo_params)
    end


    def photo_params
      params.require(:photo).permit(:image)
    end

end

如何将id为1传递给我的@photo对象?我知道这可能是一个新问题,但我花了几个小时尝试不同的事情,没有任何工作。谢谢!

这些是我的路线:

  root 'pages#landing'

  match '/home',    to: 'pages#home',    via: 'get'
  match '/about',   to: 'pages#about',     via: 'get'
  match '/gallery',   to: 'pages#gallery',   via: 'get'

  match '/events',   to: 'pages#events',   via: 'get'
  match '/menu',   to: 'pages#menu',   via: 'get'
  match '/testing',   to: 'pages#testing',   via: 'get'
  match '/contacts',     to: 'contacts#new',             via: 'get'
  resources "contacts", only: [:new, :create]
  match '/events',   to: 'pages#mevents',   via: 'get'
  resources "events", only: [:new, :create]

  resources :photos

1 个答案:

答案 0 :(得分:0)

此代码存在一些问题。

首先,路径不会将任何属性传递给可用于确定所需照片的方法。其次,您没有提交一份表格,可以在您的photo_params方法中提供照片参数。幸运的是,你不需要它是动态的,所以你可以简单地删除那部分。最后,您不能简单地将所需的id添加到实例变量中的方法链中(一旦获得它)。尝试调整代码看起来更像这样:

class PagesController < ApplicationController

  def landing
    @photo = Photo.find(1)
  end

end

<%= image_tag( @photo.image.thumb('150x185#').url ) if @photo.image_stored? %>