小编use*_*954的帖子

Rails has_many关系,不使用id

一直在乱搞Rails,在通过Hartl的教程时,我被要求做一个项目.认为这是偏离路径的好机会,即使我不够了解;)因此,为什么我有一些问题.

我有两个型号:

Foo,其中包含参数名称和 has_many FooStatus

FooStatus,其参数为Foo.name和content,belongs_to Foo

Hartl的教程使用您登录的帐户,因此@foo参数已经绑定并且foo.id可以随时使用.经过身份验证后,用户可以为任何人创建状态Foo.在我的HTTP请求,我想送过来foo.name,并foostatus.content保存并有信息到我的DB.

我的问题:这些模型是否会在数据库中存储两个对象之间的相应关系/链接?

这条线<% if @foo.foostatus.any? %>给了我错误

SQLite3::SQLException: no such column: foostatus.foo_id: SELECT  1 AS one FROM "foostatus"  WHERE "foostatus"."foo_id" = ?  ORDER BY created_at DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

所以我假设该.any?方法正在寻找foostatus.foo_id,我没有存储在我的表中.

我原本以为我可以说

foo = Foo.find_by_name(params[:name]) 
@foostatus = foo.foostatus.build(params[:content])
Run Code Online (Sandbox Code Playgroud)

但阅读强参数会让我陷入困境,因为这是不允许的.

ruby ruby-on-rails-4 rails-activerecord

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

单击jQuery并输入keyup,不同的类

在提交之前绝望的深夜编码.

我有两个HTML对象,有两个独立的类名,我希望用不同的actionlisteners绑定同一个事件.

<form class="form-wrapper cf" action ="">
  <input id="searchInput" type="text" placeholder="Search for Sets or Cards" required>
  <button class="searchButton" type="button">Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)

我已经设法在点击时处理按钮,在阅读"on"文档后,我看到你可以将多个监听器绑定到同一个类.但是我无法弄清楚是否可以进行密钥更新.

$(".searchButton").on("click" ,function(){
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

Rails 4:带偏移量的 ActiveRecord 删除

我有一个程序每五分钟向我的 Rails 应用程序提交一个 HTTP 请求。这些记录在 ID 和 created_at 上有一个索引,以相反的顺序显示。由于这些状态更新的频率,我只想存储最近的十个。在研究如何执行此操作时,我认为偏移量非常适合检索然后删除数据集。尽管在我的 rails 控制台测试中,我无法说服 ActiveRecord 它想要以这种方式工作(它删除所有记录,而不仅仅是未包含在偏移量中的记录)。

有没有更有效的方法来做我想在我的控制器中做的事情?有没有办法使用 ActiveRecords 删除带有偏移量的记录?如果没有,那么做这件事的理想方法是什么?

def create
    env = Env.find_by_name(params[:updateresult][:env_name])
    @updateresult = env.updateresults.build(updateresult_params)
    respond_to do |format|
        if @updateresult.save
            format.json { render json: @updatresults, status: :created}
            #env.updateresults.where(:id => env.updateresults.offset(10).pluck(:id)).delete_all
        else
            format.json { render json: @updatresults.errors, status: :unprocessable_entity }
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

编辑:改变大卫的答案,在上面的代码中提出注释掉的答案

ruby activerecord ruby-on-rails

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