不能';我找不到有';id'=索引railsajaxjquery

不能';我找不到有';id'=索引railsajaxjquery,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我目前正在尝试使用ajax,我发现这是我遇到的错误 ActiveRecord::RecordNotFound位于/books/index。找不到“id”=索引的书籍 我的意图是,当我点击Select并更改值而不重新加载时,我希望图书的卡片能够自行排序。因此,我使用js和ajax,但目前我仍在这个过程中 Book Index.html.erb <select id="priceSelect"> <option value="Best Results" selected="se

我目前正在尝试使用ajax,我发现这是我遇到的错误

ActiveRecord::RecordNotFound位于/books/index。找不到“id”=索引的书籍

我的意图是,当我点击Select并更改值而不重新加载时,我希望图书的卡片能够自行排序。因此,我使用js和ajax,但目前我仍在这个过程中

Book Index.html.erb

<select id="priceSelect">
  <option value="Best Results" selected="selected">Best Results</option>
  <option value="Price Descending">Price Descending</option>
  <option value="Price Ascending">Price Ascending</option>
</select>

.
.
.

<% @books.each do |book| %>
  <div class="col-xs-12 selectable-card">
    <%= link_to book_path(book.id) do %>
      ...   
    <% end %>
  </div>
<% end %>

<script>
  $('#priceSelect').change(function(){
    $.ajax({
      url: "books/index",
      type: "GET",
      data: {sort: $('#priceSelect :selected').val()},
      success:function(result){
        console.log(result);
      },
    })
  });
</script>
我真的不明白为什么会出现这个错误,因为我声明这个方法应该只在[:show]上工作,等等。。。而不是在[:索引]上。错误表明这是因为我的BooksController中的那条线

private

def set_book
 @book = Book.find(params[:id])
end  
最后是我的路线.rb

resources :books do
  resources :users
end
替换

书籍/索引

仅仅

/书

因为默认情况下,
/books
只会点击
索引
操作。如果您在“代码> /书籍< /代码>之后通过任何东西,它将被认为是URL中的ID。
<script>
  $('#priceSelect').change(function(){
    $.ajax({
      url: "/books",
      type: "GET",
      data: {sort: $('#priceSelect :selected').val()},
      success:function(result){
        console.log(result);
      },
    })
  });
</script>

$('#priceSelect')。更改(函数(){
$.ajax({
网址:“/books”,
键入:“获取”,
数据:{sort:$('#priceSelect:selected').val(),
成功:功能(结果){
控制台日志(结果);
},
})
});
更换

书籍/索引

仅仅

/书

因为默认情况下,
/books
只会点击
索引
操作。如果您在“代码> /书籍< /代码>之后通过任何东西,它将被认为是URL中的ID。
<script>
  $('#priceSelect').change(function(){
    $.ajax({
      url: "/books",
      type: "GET",
      data: {sort: $('#priceSelect :selected').val()},
      success:function(result){
        console.log(result);
      },
    })
  });
</script>

$('#priceSelect')。更改(函数(){
$.ajax({
网址:“/books”,
键入:“获取”,
数据:{sort:$('#priceSelect:selected').val(),
成功:功能(结果){
控制台日志(结果);
},
})
});

您正在URL中向其传递一个“索引”ID。不要,没必要。对根图书路由的GET请求是您想要的。您想在ajax中点击图书索引操作吗?您正在URL中向其传递一个“index”的ID。不要,没必要。对根图书路由的GET请求是您想要的。您想在ajax中点击图书索引操作吗?