나는 나의 모델을 정의했습니다 :MappedLongForeignKey를 확장하는 객체와 함께 특성을 혼합하여 def asHtml 및 def validSelectValues를 재정의하는 방법은 무엇입니까? 다음과 같이
object Curr extends Curr with LongKeyedMetaMapper[Curr] with CRUDify[Long, Curr] {
}
class Curr extends LongKeyedMapper[Curr] with IdPK with CreatedUpdated {
def getSingleton = Curr
object code extends MappedString(this, 100)
object name extends MappedString(this, 100)
}
object Country extends Country with LongKeyedMetaMapper[Country] with CRUDify[Long, Country] {
}
class Country extends LongKeyedMapper[Country] with IdPK with CreatedUpdated {
def getSingleton = Country
object name extends MappedString(this, 100)
object currid extends MappedLongForeignKey(this, Curr) {
override def asHtml = {
<span>{Curr.find(By(Curr.id, this)).map(c => (c.name + " " + c.code)).openOr(Text(""))}</span>
}
override def validSelectValues: Box[List[(Long, String)]] =
Full(Curr.findAll(OrderBy(Curr.name, Ascending)).map(c => (c.id.is, c.code.is)))
}
}
나는 많은 그런 모델이있을 것이다, 나는 외래 키있을 것이다 많은 모델 asHtml
및 validSelectValues
정의의 중복을 제거 할. 수행, 위의 기록으로,
trait MyField[T <: LongKeyedMetaMapper[T] with IdPK] {
val MyModel: T
override def asHtml = {
<span>{MyModel.find(By(MyModel.id, this)).map(c => (c.name + " " + c.name)).openOr(Text(""))}</span>
}
override def validSelectValues: Box[List[(Long, String)]] =
Full(MyModel.findAll(OrderBy(MyModel.name, Ascending)).map(c => (c.id.is, c.name.is)))
}
내 특성 : 형질을 가진
object currid extends {val MyModel = Curr } MappedLongForeignKey(this, Curr) with MyField[Curr] {
같은 것을 정의되는 : 나는 다음과 같이 내 모델에 혼합 것 특성 MyField
이 할 수있는 생각 작동하지. 나는 각 MyModel
가 name
구성원을해야합니다 있는지 확인합니다
No implicit view available from net.liftweb.mapper.MyField[T] => Long.
[error] <span>{MyModel.find(By(MyModel.id, this)).map(c => (c.name + " " + c.name)).openOr(Text(""))}</span>
[error] ^
value name is not a member of type parameter T
[error] Full(MyModel.findAll(OrderBy(MyModel.name, Ascending)).map(c => (c.id.is, c.name.is)))
[error] ^
: 여기에 컴파일러가 생성하는 오류입니다. 누구든지이 특성을 구현하는 방법에 대해 조언 할 수 있습니까?
감사합니다.
당신의 코드 스 니펫. 그러면 질문이 더 명확하고 읽기 쉽습니다. –
@Core_Dumped, 감사합니다. 저는 Country가 Curr과 관련이 있고, Curr이 필요한 분야를 가지고 있다는 것을 보여주고 싶었습니다. 나는 세 줄을 제거했다. –