Я пытаюсь «промокнуть пальцы» с помощью грааля, и решил сделать сайт рецептов в качестве первого проекта.
Я использую Grails 2.0.1 и использую mongoDB GORM для постоянства, которое работает нормально, и я использую static Searchable = true
в моих моделях для поиска.
Делая простую утилиту поиска, мне удалось найти рецепты по имени, используя:
def recipes = Recipe.withCriteria
{
ilike('name', params.name)
}
Рецепты можно найти по имени. У меня вопрос, как я могу искать имена ингредиентов, чтобы пометить их как результаты поиска (относительно моделей ниже)?
Исходя из PHP и MySQL, это будет так же просто, как изменить запрос с помощью объединения или чего-то еще
мои модели следующие:
class Recipe
{
String name;
String method;
Date dateAdded;
static hasMany = [ingredients:Ingredient];
static Searchable = true;
static constraints =
{
name(blank:false, maxSize: 255)
method(blank:false)
}
static mapping =
{
sort dateAdded: "desc"
}
}
class Ingredient
{
String name;
static hasMany = [recipes:Recipe];
static belongsTo = [Recipe]
static constraints =
{
name blank:false;
}
String toString()
{
return name;
}
}