如何生成指向其他Rails页面的链接并标记该特定项目?

时间:2018-01-09 18:03:44

标签: ruby-on-rails

我在Rails应用程序中使用JS和HTML的混合构建了几个页面,它很丑陋且重复。所以我通过试图以Rails的方式回去。

所以我构建了控制器,索引页面和显示页面。我正在购买商品的订单页面上工作。基本上我需要将索引页面上的项目链接到订单页面。

我有以下应该有效(不是,但这是另一个问题):

<%= link_to 'Order', order_books_path(@book) %>

这些链接位于每本书的旁边。理想情况下,当一个人点击该书时,它会进入显示所有书籍的订单页面,并标记刚刚点击的书籍。

在我的JS / HTML混搭中,我应用了一个变量,当它出现在页面加载时,它使该书处于活动状态。

最好的Rails方法是什么?

编辑:我的控制器在这一点上非常小,我只是:

class BooksController <ApplicationController
def index
 @book = Book.all
end

def order
 @book = Book.find(params[:id])
end

def show
 @book = Book.find(params[:id])
end

end

我可以想象我的订单方法也是错误的。

1 个答案:

答案 0 :(得分:0)

假设您在books#index路线上,我假设您有完整的图书清单要显示。在这种情况下,以下内容适用于books/index.html.erb

# books/index.html.erb
# @books is your list of books => [Book1, Book2, ...etc]

@books.each do |book|
  <div> <%= book.title %> </div>
  # other misc book info
  <%= link_to 'Order', order_books_path(book) %>
  # assuming the order_books_path is the correct route
end