【发布时间】:2018-05-09 10:42:12
【问题描述】:
https://select2.org/getting-started/basic-usage
我想像上面链接中的第一个示例一样搜索帖子标题。
代码:
<!-- search -->
<div class="card my-auto">
<%= form_with url: posts_path, method: :get, local: :true do |f| %>
<div class="card-body">
<p>Search for a Post title.</p>
<%= f.collection_select(:post_id, Post.all, :id, :title, {include_blank: 'Post titles'}, {class:'selectbooktitle form-control'}) %>
<hr>
<div class="input-group">
<span class="input-group-btn">
<%= f.submit 'Search', class: 'btn btn-outline-success'%>
</span>
<% end %>
</div>
</div>
</div>
这是单击提交时来自我的服务器的请求。
Started GET "/posts?utf8=%E2%9C%93&post_id=16&commit=Search" for 127.0.0.1 at 2018-05-09 14:18:51 +0200
Processing by PostsController#index as HTML
Parameters: {"utf8"=>"✓", "post_id"=>"16", "commit"=>"Search"}
Rendering posts/index.html.erb within layouts/application
Post Load (0.3ms) SELECT "posts".* FROM "posts"
Post Load (0.3ms) SELECT "posts".* FROM "posts" ORDER BY created_at DESC
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 2], ["LIMIT", 1]]
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 2], ["LIMIT", 1]]
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 2], ["LIMIT", 1]]
CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 2], ["LIMIT", 1]]
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 4], ["LIMIT", 1]]
Rendered posts/index.html.erb within layouts/application (10.2ms)
Category Load (0.3ms) SELECT "categories".* FROM "categories"
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 2], ["LIMIT", 1]]
Rendered layouts/_navbar.html.erb (4.5ms)
Rendered layouts/_alerts.html.erb (0.4ms)
Rendered layouts/_footer.html.erb (0.6ms)
Completed 200 OK in 59ms (Views: 55.0ms | ActiveRecord: 1.9ms)
指向此 URL:
http://localhost:3000/posts?utf8=%E2%9C%93&post_id=20&commit=Search
它应该指向以下 URL:
http://localhost:3000/posts/20
我做错了什么?
提前感谢您的帮助!
【问题讨论】:
-
好的。你试过什么?你在哪里卡住了?
-
我尝试实现我发布的 f.collection_select 行 - 说 NoMethod 错误 collection_select
-
那是因为
f是nil。 #form_tag 不会将任何参数传递给它的块。您必须改用 #form_with (如果您想保持相同的行为,请设置local: true)。 api.rubyonrails.org/classes/ActionView/Helpers/… -
@JohanWentholt 是的!我的表单现在可以工作了,但是我仍然遇到的唯一问题是,每当我尝试提交表单时,它实际上不会将页面切换到选择的搜索对象。它会将 URL 更改为 localhost:3000/… 但不会实际更改页面。
-
如果您想要与示例中完全相同的表单,您必须设置以下内容:
form_with url: posts_path, method: :get, local: :true。你设置了这些选项吗?如果是,您在服务器上收到什么请求?
标签: ruby-on-rails ruby jquery-select2 select2-rails