私は特定の質問があります。Grails - どのように他のコントローラからコントローラにパラメータを保存する
私はgrails上で初心者です。このシナリオでいくつかのテストアプリを書こうとしています。
私は2つのドメインクラス
の1-カー 2 - 登録を持っている私は、リストからいくつかの車を選択するブランド、モデルなどとユーザとのいくつかの車を追加して、車のボタンを借りクリックします
。ユーザーが自動車のボタンをクリックすると、登録/作成ページが開きます。車を取得したい:ユーザーの選択した車のIDとユーザーが自分の名前のような追加の情報を入力し、ユーザーが登録/リスト私は車との登録を参照する必要があります:IDとあなたの名前のエントリ
私は車のリストを持って、このフィールドはここに私の車のモデルです。
package rentme
class Car {
String brand
String model
String fuelType
BigDecimal pricePerDay
String busy
static constraints = {
brand(inList:["AUDI", "BMW", "MERCEDES", "NISSAN", "HONDA", "FORD"])
model()
fuelType(inList:["FUEL", "DIESEL", "AUTOGAS"])
pricePerDay(min:0.0, max:1000.0)
busy(inList:["YES", "NO"])
}
}
と私は登録クラスを持って、
package rentme
class Registration {
String yourName
static constraints = {
yourName()
}
}
だから私がやったこと、
私はグラムで車/ index.gspこのリンクを追加:各;
<g:each in="${carList}" var="car">
<p>${car.id} </p>
<g:link action="create" controller="registration" params="${[car: car, carId : car.id ]}">
Rent Car
</g:link>
</g:each>
とそのような変更された登録コントローラ。
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
respond Car.list(params), model:[carCount: Car.count()]
}
ここで何が起こったのですか。私がボタンをクリックするとレンダリングボタンページがリダイレクトされます。ここ
は私の登録/ create.gsp<g:form action="save">
<div><p>Car ID : ${car.id} </p></div>
<fieldset class="form">
<f:all bean="registration"/>
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
</fieldset>
</g:form>
であり、あなたの名前のフィールドを記入し、それが働いているようなので、ボタンのすべてがオーケーで保存しますが、
を:)ないときに私がチェックしたときに理由私のdb私は選択された車のIDが表示されません。
mysql> SELECT * FROM registration;
+----+---------+--------------+
| id | version | your_name |
+----+---------+--------------+
| 12 | 0 | Cihan Zengin |
| 13 | 0 | Cihan |
| 14 | 0 | ndlkdkldnkl |
+----+---------+--------------+
しかし、登録/インデックスまたは登録/表示にクリックすると、あなたの名前の価値がありますが、私はそこに車を見たいと思っています。
どうすればよいですか?誰かが私には分かりません。私は理解できず、インターネットのようなところには何も見つからないからです。
わかりませんが、単に「登録」クラスに車のIDを追加すると、そのトリックを行う可能性があります。現在、 'Registration'クラスには名前だけが含まれていますので、それはあなたが得るものです。 –
ちょうどフィールドのように追加しますか?その時、ユーザーは登録時に再び車のIDを選択する必要があります/私はこれをやりたいとは思わない、私は登録をしたい/登録クラスを保存した後に私は車のクラスから渡した車のIDを保存します。 – user3348410
登録が自動車に属しているかどうか、または自動車が登録に属しているかどうかを判断する必要があります。ここでは車AがBobに登録されます。その場合、登録は自動車に属すると言うことができます。したがって、その事実を示すためにモデルに注釈が必要となり、コントローラとビューを調整してください。 hasOneとbelongsToに関するGrails/Gormを読んでください。 – railsdog