如何在rails中使用link_to来加载控制器中的html.erb页面

时间:2013-06-19 11:23:08

标签: ruby-on-rails ruby

我是铁杆的新手,如果有任何一个回答,将会感激不尽..!我无法加载customers_list.html.erb

这是我的customers / index.html.erb

<li><%= link_to "Edit", edit_customers_path(customers) %></li>

这是我的customers_controllers

def edit
render:"customers_list" // customers_list.html.erb in customers view
end

这是我的routes.rb

resources :customers

错误:

undefined local variable or method `customers'

1 个答案:

答案 0 :(得分:0)

首先,index.html.erb是列出客户的正确位置。所以,你不需要customers_list

#controller
def index
  @customers = Customer.all
end

#view (index.html.erb)
<% @customers.each do |customer| %>
  <%= customer.name %> #assuming customer has the attribute name
<% end %>

如果您正在尝试编辑一个客户,可以将其添加到索引视图中的循环中:

<% @customers.each do |customer| %>
  <%= customer.name %>
  <%= link_to 'Edit', edit_customer_path(customer) %>
<% end %>

但是,根据您的<%= link_to "Edit", edit_customers_path(customers) %>,您应该考虑:

  • 什么是edit_customers_path?看看here。您还可以使用rake routes查看路线。

  • 什么是customers?你还没定义它。

如果您在控制器中定义它,您可以在视图中使用它:

def index
...
@customer = Customer.find(1)
end

在您看来:

<%= link_to 'Edit', edit_customer_path(@customer) %>

我希望它能以某种方式帮助你......