2017-04-17 12 views
-1

関連テーブルからデータを表示する私は2つのテーブルを持っている:ホテルやコンテンツGrailsは:トラブル

コンテンツドメインは、次のようになり、hotelIdが生成されている:

class Content { 

Hotel hotel 
String imageUrl 

static constraints = { 
    imageUrl nullable:true 
} 

私はからS3に画像をアップロードしています関連するコンテンツテーブルへのホテルのショーページは動作しています - コンテンツテーブルから関連ホテルオブジェクトのショーページ(コンテンツのhotel = hotelIdのID)の画像に画像を表示します。

私は数日のためにこれをしてきた、これは私の足は修正に最も近いものです:

HotelController:

def showContent() 
{ 
    def content = Content.findByHotelId(hotel.params.id) 
    render content: content 
} 

ホテルビュー:

<g:if test="${content.hotelId}" action="showContent"> 
    <img src = "${content.imageUrl}" /> 
</g:if> 

このコードでは、次のエラーが発生します。 'nullオブジェクトに' hotelId 'プロパティを取得できません。

ご協力いただければ幸いです。 HotelControllerで標準足場showアクションへ

+0

私はこの機能についてfindByHotelIdと思っています。これが正しいと確信していますか?私の見解では、findByHotel()だけがあるはずです – Torsten

+0

いいえfindByHotelIdが正しいとは確信できませんが、findByHotelを試してみたところ、同じエラーが発生しています。これは間違いなく間違っているといえような小さな何か –

+0

ホテルホテル= Hotel.findById(params.id)私はこの – Torsten

答えて

0

スティック:私はあなたが上記のそれぞれをラップしたいと思う推測

<g:each in="${hotel.contents}" var="content"> 
    <img src = "${content.featuredImageUrl}" /> 
</g:each> 

:ホテルshow.gsp内の各コンテンツのその後

def show(Hotel hotel) { 
     respond hotel 
} 

何とかそれを分割するかスタイルを変えてください。

+0

ようメンター = Content.findByHotel(ホテルで)ありがとう DEF内容が、これはまだ同じを返します以前と同じエラー、 'プロパティを取得できません' nullオブジェクトにhotelId ' –

+0

レンダリングしようとしているコンテンツドメインに関連するホテルがありますか? ' ' –

+0

はい、それを試してください。 idが1のホテルは、HotelIdが1であるContentにリンクされています。 '?'を追加するエラーをスローせずにページをロードしましたが、ページに何も含まれていませんでした –