一直在乱搞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)
但阅读强参数会让我陷入困境,因为这是不允许的.
在提交之前绝望的深夜编码.
我有两个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) 我有一个程序每五分钟向我的 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)
编辑:改变大卫的答案,在上面的代码中提出注释掉的答案