【发布时间】:2013-07-08 07:28:09
【问题描述】:
我是 Grails 的新手,从过去几天开始学习 Grails。我正在尝试在我的演示 grails 应用程序中使用 searchable plugin 添加搜索功能。我在用户搜索中成功添加了searchable plugins,用户可以搜索其他用户并关注他们。我就是这样的..
grails install-plugin searchable
域 Person.groovy --
package org.grails.twitter
class Person {
transient springSecurityService
String realName
String username
String password
boolean enabled
boolean accountExpired
boolean accountLocked
boolean passwordExpired
static hasMany = [followed:Person, status:Status]
static searchable = [only: 'realName']
static constraints = {
username blank: false, unique: true
password blank: false
}
static mapping = {
password column: '`password`'
}
Set<Authority> getAuthorities() {
PersonAuthority.findAllByPerson(this).collect { it.authority } as Set
}
def beforeInsert() {
encodePassword()
}
def beforeUpdate() {
if (isDirty('password')) {
encodePassword()
}
}
protected void encodePassword() {
password = springSecurityService.encodePassword(password)
}
}
查看/可搜索/index.gsp ---
<html>
<head>
<meta name="layout" content="main" />
<title>What Are You Doing?</title>
<g:javascript library="jquery" plugin="jquery" />
</head>
<body>
<h1>Search For People To Follow</h1>
<div class="searchForm">
<g:form controller="searchable">
<g:textField name="q" value=""/>
</g:form>
</div>
<h1>What Are You Doing?</h1>
<div class="updateStatusForm">
<g:formRemote onSuccess="document.getElementById('messageArea').value='';" url="[action: 'updateStatus']" update="messageLists" name="updateStatusForm">
<g:textArea name="message" value="" id="messageArea" /><br/>
<g:submitButton name="Update Status" />
</g:formRemote>
</div>
<div id="messageLists">
<g:render template="messages" collection="${messages}" var="message"/>
</div>
</body>
</html>
它工作正常。现在我的问题开始了。现在我想在我的帖子域中添加这个可搜索的内容,用户也可以在其中搜索帖子项目。我就是这样的……
域 Post.groovy --
package groovypublish
class Post {
static hasMany = [comments:Comment]
String title
String teaser
String content
Date lastUpdated
Boolean published = false
SortedSet comments
static searchable = [only: 'title']
static constraints = {
title(nullable:false, blank:false, length:1..50)
teaser(length:0..100)
content(nullable:false, blank:false)
lastUpdated(nullable:true)
published(nullable:false)
}
}
这是表单视图
查看/发布/list.gsp --
------ some code -----
<g:form controller="searchable" class="navbar-search pull-left">
<g:textField name="q" value="" class="search-query" placeholder="Search Posts"/>
</g:form>
------ some code ------
现在,当我尝试按帖子标题搜索帖子时,它会显示错误。它覆盖可搜索的操作。如何解决这个问题?
【问题讨论】:
-
谁能帮帮我??如果您不明白问题,请告诉我。我会改进它...
-
您在搜索时遇到什么错误,因为可搜索看起来不错,您的控制器中的代码是什么?
-
Ya Searchable 没有显示任何错误。我工作正常,但两个搜索文本字段只执行一个搜索。在我的个人域中,我使用可搜索来搜索其他用户。现在,我也用于 Post 域的相同搜索,而不是显示帖子项目,它作为不正确的人员搜索工作。我如何区分这两个可搜索的,以便我可以在不同的域上执行不同的操作。
-
我使用相同的 index.gsp 页面进行两个搜索以显示搜索结果。正如您在 view/searchable/index.gsp 中看到的那样。如何在不同的视图上呈现帖子搜索结果..
-
看下面的答案,你可以在控制器中拥有不同的2个搜索功能,并相应地渲染搜索视图
标签: grails grails-plugin grails-2.0 grails-domain-class