【发布时间】:2017-01-18 08:48:00
【问题描述】:
我有一个具体的问题;
我是 grails 的新手,我正在尝试用这种情况编写一些测试应用程序;
我有 2 个域类
1- 汽车 2- 注册
我想添加一些品牌、型号等的汽车。用户将从列表中选择一些汽车,然后单击租车按钮。当用户单击租车按钮将在此处打开注册/创建页面时,我想获取汽车:用户所选汽车的 ID,并且用户将输入自己的一些额外信息,例如您的姓名,以及何时用户单击以保存注册按钮/列出我需要查看带有 car: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()
}
}
所以我做了什么,
我在 g:each 中添加了 cars/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()]
}
现在发生了什么;当我单击租赁按钮页面时,重定向到注册/创建页面,其中包含汽车用户选择的捕获 ID;
这是我的注册/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>
当填写您的姓名字段并单击保存按钮时,一切正常,所以就像它在工作但不是:)
因为当我检查我的数据库时,我没有看到选择的汽车 ID。
mysql> SELECT * FROM registration;
+----+---------+--------------+
| id | version | your_name |
+----+---------+--------------+
| 12 | 0 | Cihan Zengin |
| 13 | 0 | Cihan |
| 14 | 0 | ndlkdkldnkl |
+----+---------+--------------+
但是当我点击注册/索引或注册/显示时,只有你的姓名值,但我也想看到 car:id。
如何做到这一点?请有人告诉我,因为我无法理解,也无法在互联网上找到类似的东西
【问题讨论】:
-
不确定,但只需在
Registration类中添加汽车 ID 即可。目前,Registration类仅包含名称,这就是您所得到的。 -
只是像字段一样添加?那个时候用户应该在注册/创建中再次选择汽车ID我不想这样做,我想在注册/保存后创建注册类将保存我从汽车类传递的汽车ID。
-
你需要决定一个Registration是否属于一个Car,或者一个Car是否属于一个Registration...这里是Car A,我想把它注册给Bob。在这种情况下,可以说注册属于 Car。因此,您需要在模型中添加注释来表示这一事实,然后调整您的控制器和视图。阅读有关 hasOne 和 belongsTo 的 Grails/Gorm。
-
@railsdog 那么如何调整控制器和视图呢?你能告诉我详细的代码吗?
-
最近有几个关于 SO 的问题与您的问题相似。所以我不愿意写代码(假设它是为了分配)。将提问者指向参考文档比编写代码要好得多(否则将如何学习?)。这并不难,你只需要付出努力。