0

私はRuby on Railsが初めてで、それを学んでいます。paperclip gem によって別のビューに保存された画像を含むテーブルにアクセスしたいのですが、たとえば私のアプリケーションでは、原因コントローラーがあり、次のコードでテーブルに保存されている原因ビューの画像にアクセスできます。

 =image_tag @cause.images.first.image.url(:thumb), 

しかし、プロファイルコントローラーからテーブルに保存されている画像にもアクセスできます。では、ビューCausesでビューProfilesのオブジェクトにアクセスするにはどうすればよいですか? 私は原因コントローラで試します:

-> @profile = Profile.all -> =image_tag @profile.images.first.image.url(:thumb), 

しかし、うまくいかないので、友達、どうすればこの問題を解決できますか? ありがとう。

4

2 に答える 2

0

まず、causes コントローラーで、pluralize @profilebecauseProfile.allはすべてのプロファイルの配列を返します。すなわち@profile = Profile.allに変更@profiles = Profile.all

は配列であるため@profiles、ビュー内の各配列項目を反復処理する必要があります。原因:

<% @profiles.each do |profile| %>
  <%= image_tag profile.images.first.image.url(:thumb) %>
<% end %>

単一のプロファイル画像のみを返す場合は、コントローラーでどのプロファイルを指定する必要があります。すなわち

@profile = Profile.first

または、原因モデルがプロファイル モデルに属している場合:

@profile = Profile.find(params[:profile_id])
于 2013-09-13T04:23:22.547 に答える
0

Profile.all を @profile に送信しています。これは、@profile がプロファイル オブジェクトの配列になることを意味します。メソッド イメージは、複数ではなく、Profile クラスの 1 つのオブジェクトで機能します。適切なプロファイルを選択して @profile に割り当てる必要があります。EXの場合:

@profile = Profile.first # just taking the first profile, you can select any.

ビューでは、この @ プロファイルを使用して画像を取得できるようになりました。

于 2013-09-13T04:18:45.100 に答える