0

トンボの宝石を介してアップロードしたランディング ページに特定の画像を表示したいと考えています。

次のエラーが表示されます: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

@photo オブジェクトに ID 1 を渡すにはどうすればよいですか? これは初心者の質問かもしれませんが、さまざまなことを試して数時間を費やしましたが、何もうまくいきませんでした. ありがとう!

これらは私のルートです:

  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
4

1 に答える 1

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? %>
于 2014-08-29T05:52:48.240 に答える