小编kof*_*rts的帖子

在grails中获取最后两条记录的有效方法?

我有域名说

class Content{

  String content
  Date dateCreated
  Date lastUpdated

}
Run Code Online (Sandbox Code Playgroud)

数据库中的内容记录很少.我想检索最新的两条记录.在Grails中查询两个最新记录的有效方法是什么?谢谢!

grails grails-orm

2
推荐指数
1
解决办法
1517
查看次数

更新是否会更改PostgreSQL中表中记录的顺序?

我的代码取决于表中记录的顺序。我的假设是,可以将表视为列表,以便记录保持顺序。我有一个小的更新代码,如下所示,它将更新表中特定索引处的记录。

p = pieces[index]

p.position = 0

p.save
Run Code Online (Sandbox Code Playgroud)

我检查了此更新之前和此更新之后的记录顺序,然后看到更新之后,已更新的记录已移至列表的最后。我打印Piece.all以打印列表。该命令在mysql中维护,但是当我将其部署到使用postgre的heroku时,该命令没有得到维护,因此这对我来说是一个令人惊讶的发现。

表中没有顺序的保证,并且不应该依赖顺序吗?请纠正我的误会,并感谢您的澄清。

postgresql ruby-on-rails sql-order-by

2
推荐指数
1
解决办法
1270
查看次数

splice返回的对象具有未定义的属性.为什么?

我们将定义视为

    function Stone()  {
        this.x = 0;
        this.y = 400;

    };
Run Code Online (Sandbox Code Playgroud)

我实例化一个对象

var st = new Stone;

var ll = [st];

var remov = ll.splice(0, 1);

alert(remov.x);
Run Code Online (Sandbox Code Playgroud)

这里删除从列表中删除对象,但所有属性都设置为undefined.警报将提醒"未定义".为什么会这样?

javascript

2
推荐指数
1
解决办法
83
查看次数

你如何使枚举与simple_form一起工作?

请考虑以下型号

  class Song < ActiveRecord::Base

      enum category: [:english, :french]

      enum file_type: [:mp3, :video]

      enum mood: [:sad, :happy]
    end
Run Code Online (Sandbox Code Playgroud)

我有一个表格

= simple_form_for(@song) do |f|

  = f.input :name
  = f.input :category, collection: Song.categories
  = f.input :file_type, collection: Song.file_types
  = f.input :mood, collection: Song.moods
Run Code Online (Sandbox Code Playgroud)

这里的问题是,当我编辑表单时,所选的值为nil,即选择框未选择设置的值,而是选择了空白。所以我想知道视图中是否有办法显示保存的枚举值?

谢谢!

ruby enums ruby-on-rails simple-form

2
推荐指数
1
解决办法
541
查看次数

了解JavaScript中的变量阴影?

我创建了一个加密对象,如下所示:

var crypto = {
  encrypt: function(s) {

  }
};

crypto.encrypt("cat");
Run Code Online (Sandbox Code Playgroud)

我会收到以下错误

未捕获的TypeError:crypto.encrypt不是函数

var crypt = {
  encrypt: function(s) {

  }
};

crypt.encrypt("cat");
Run Code Online (Sandbox Code Playgroud)

这会工作。我意识到已经有一个内置crypto对象,因此无法识别我定义的加密对象。

我的理解是,稍后声明的变量将覆盖之前声明的变量。

例如,当我创建两个对象时,如下所示:

var test = {
  testing2: function() {
    return "there";
  }
}

var test = {
  testing: function() {
    return "hey";
  }
}

test.testing2()
Run Code Online (Sandbox Code Playgroud)

然后我打电话给我,test.testing2()因为第二个测试变量遮盖了第一个测试变量,所以引发了类似的错误。因此,如果变量影子可用于自创建变量,那么为什么不加密加密货币呢?是否存在这样的情况,即预定义对象的优先级始终较高,因此任何自行创建的对象都不会遮盖窗口对象。我对此表示感谢。谢谢!

javascript

2
推荐指数
1
解决办法
61
查看次数

groovy 中的 findResults 和 collect 有什么区别?

这是使用收集的代码

?def lst = [1,2,3,4];      
def newlst = [];       
newlst = lst.collect {element -> return element * element}       
println(newlst);
Run Code Online (Sandbox Code Playgroud)

这是使用 findResults 的代码

def lst2 = [1,2,3,4];      
def newlst2 = [];       
newlst2 = lst2.findResults {element -> return element * element}       
println(newlst2);
Run Code Online (Sandbox Code Playgroud)

?两者似乎都返回 [1, 4, 9, 16] 那么有什么区别呢?谢谢!

groovy

2
推荐指数
1
解决办法
704
查看次数

无方法签名:java.util.Date.minus() 适用于参数类型:(整数)?

我正在将 grails 2.2 升级到 grails 4.0.10。

在使用 java 7 的 grails 2.2 中,这曾经可以工作

def eanalytics = EventAnalytics.createCriteria().get(){
    eq('event', raceGroup)
    lt('dateCreated', timeService.now())
    gt('dateCreated', timeService.now() - 1)
}
Run Code Online (Sandbox Code Playgroud)

现在对于 grails 4 和 java 8 我收到此异常

Caused by: groovy.lang.MissingMethodException: No signature of method: java.util.Date.minus() is applicable for argument types: (Integer) values: [1]
Possible solutions: find(), find(groovy.lang.Closure), is(java.lang.Object), any(), print(java.io.PrintWriter), use([Ljava.lang.Objec
Run Code Online (Sandbox Code Playgroud)

似乎我无法通过减去 java 8 中迄今为止的天数来获得新日期。执行此操作的等效代码是什么?谢谢您的帮助。

timeservice.now 是

def now(){
        def now = new Date()
        return now
    }
Run Code Online (Sandbox Code Playgroud)

grails java-8 grails-4

2
推荐指数
1
解决办法
2893
查看次数

理解圆半甚至?

当我打印

(new BigDecimal(5) * new BigDecimal(0.049))?
Run Code Online (Sandbox Code Playgroud)

它给

0.24500000000000000943689570931383059360086917877197265625
Run Code Online (Sandbox Code Playgroud)

当我使用ROUND_HALF_EVEN围绕它

(new BigDecimal(5) * new BigDecimal(0.049)).setScale(2, BigDecimal.ROUND_HALF_EVEN)?
Run Code Online (Sandbox Code Playgroud)

它打印

0.25
Run Code Online (Sandbox Code Playgroud)

所以我的困惑是,它不应该舍入到偶数,所以代替0.25不应该是0.24.请帮助解决这个困惑.谢谢!

java groovy rounding

1
推荐指数
2
解决办法
2363
查看次数

save() 没有flush不是保存记录吗?

我正在玩 grails 3 应用程序。我使用简单的操作创建了这个简单的图书应用程序。它没有更新记录。

这是图书域名

package bookapp

class Book {

    String name

    static constraints = {
    }
}
Run Code Online (Sandbox Code Playgroud)

这是图书控制器

package bookapp

import grails.plugin.springsecurity.annotation.Secured

@Secured('ROLE_USER')
class BookController {

    def index() {

        [books: Book.findAll()]
    }

    def create(){

    }

    def save(){
        def book = new Book(params)
        book.save()

        redirect(action:'show', id:book.id)
    }

    def edit(Long id){
        [book: Book.get(id)]
    }

    def update(Long id){

        def book = Book.get(id)

        bindData(book, params)

        book.save()

        redirect(action:'show', id:book.id)

    }

    def show(Long id){
        [book: Book.get(id)]
    }

    def destroy(){

    }
}
Run Code Online (Sandbox Code Playgroud)

这是编辑视图页面

<h1> Edit Book …
Run Code Online (Sandbox Code Playgroud)

grails

1
推荐指数
1
解决办法
333
查看次数

如何在设计中创建两个自定义注册表单?

我想知道是否可以有两种不同的注册表。我希望隐藏字段在这两种形式中具有两个不同的值。隐藏字段为role,值可以是“buyer”或“seller”。

我想根据角色将角色嵌入注册表中。

我已经制作了这条通过 url 传递角色的路线。

devise_scope :user do
     get "/users/sign_up/:role" => 'devise/registrations#new', :as => 'new_user_with_role'
 end
Run Code Online (Sandbox Code Playgroud)

在注册/新表格中

<%= f.hidden_field :role, :value => params[:role]  %>
Run Code Online (Sandbox Code Playgroud)

这给人一种两个单独的注册表单的感觉。这是可行的,但是当提交注册表单出现错误时,然后在错误后的视图中,隐藏字段值将被清除。需要隐藏值才能创建具有角色的帐户。

当提交注册表单出错时,有没有办法保留角色隐藏字段?

ruby-on-rails devise

1
推荐指数
1
解决办法
1386
查看次数