Rails链接到除show以外的其他视图

时间:2018-07-03 01:29:32

标签: ruby-on-rails ruby-on-rails-3 routes

这是Rails 3.2

我有一个访问列表和一个按钮,我想使用该按钮用show以外的其他视图调用访问。 haml中的按钮代码为:

  link_to 'Checkout', render('checkout'),  class: 'btn btn-mini btn-danger'

该按钮位于“访问”视图中,“访问/视图”下有我的checkout.html.haml

似乎渲染应该这样做,但不是这样

除了默认的show之外,如何渲染其他视图

1 个答案:

答案 0 :(得分:0)

render我认为应该在控制器动作中调用,我不认为您应该在haml(视图)代码中使用它。

(1)您的haml代码应该类似于
  -单击此链接将重定向到访问控制器的checkout操作。

link_to 'Checkout', checkout_visit_path(visit)

(2)为了使#1正常工作,您应该将其添加到routes.rb文件中

get '/visits/:id/checkout', to: 'visits#checkout', as: 'checkout_visit'  

或者如果您的路线中有资源blabla。rb

resources :visits do
  member do
    get :checkout
  end
end

(3)在checkout中为visits_controller.rb动作编写控制器动作

def checkout
  visit = Visit.find_by_id(params[:id])

  # since we named the controller action as "checkout",  
  # it will look for a file named 'checkout.html' (for html request), or 'checkout.json' (for json request), etc. automatically (and the code block below may not be needed)
  # if for example you want to render another file, do this
  respond_to do |format|
    format.html { render template: 'some/other/file/to/load' }
  end
end