【发布时间】:2023-06-09 06:29:01
【问题描述】:
这个问题可能有一个明显的答案......但我不确定在哪里找。
出于某种原因,rails 在某些重定向上将空查询字符串附加到我的 URL。我有一个用户“仪表板”页面,他们可以在其中单击一个按钮来创建一个新的“foo”。
当我单击按钮转到此路径时,url 显示为:“localhost/foo/new?”
我不知道这个幻像查询参数是从哪里来的......我什至不知道这是否有什么大不了的,但出于某种原因,我觉得它可能会在缓存或 SEO 端伤害我.有没有人有一些关于在哪里看的指示?
更新 1
我用来生成指向 new_foo 项目的链接的代码(使用 HAML 和引导程序):
= button_to "New Foo!", new_foo_path, :method => :get, :class => btn_class
控制器中的代码如下所示:
def new
@foo = Foo.new(:my_attribute => 2500)
end
关于第二条评论——我不认为这个对象此时会被持久化在数据库中?我认为 Rails object.new 方法只是在内存中构建它,直到#save 才会持久化。
更新 2
在将代码更改为“link_to”时,问题似乎已经消失了......你能解释一下吗?
【问题讨论】:
-
在调用 new_foo 帮助器生成新的 foo 链接时,您可以添加您正在使用的代码吗?
-
检查
foo是否持久化在数据库中。 -
感谢 cmets 伙计们 - 我在问题中添加了更多详细信息。我什至可能想通了,但不知道为什么! @luacassus - 我不认为此时该对象会保留在数据库中......通常新操作只是在内存中为表单创建一个对象?
标签: ruby-on-rails url params