Как вернуть строку для просмотра рельсов - PullRequest
1 голос
/ 17 сентября 2011

Используйте метод в помощнике, чтобы скрыть или показать ссылку соответственно.Метод new_cate?работает как задумано.Однако метод link_to_edit?вызывает следующую ошибку:

undefined local variable or method `cate' for #<#<Class:0x4ed6a10>:0x4ed2d38>

Extracted source (around line #23):

20:   <tr>
21:     <td><%= cate.name %></td>
22:     <td><%= cate.description %></td>
23:     <td><%= link_to_edit? %>></td>
24: 
25:   </tr>
26: <% end %>

Вот код:

в index.html.erb

<body>

<h2>Category</h2>
<table>
  <tr>
    <th>Category</th>
    <th>Description</th>

  </tr>

<% @categories.each do |cate| %>
  <tr>
    <td><%= cate.name %></td>
    <td><%= cate.description %></td>
    <td><%= link_to_edit? %>></td>

  </tr>
<% end %>
</table>

  <%= new_cate? %>

</body>

в category_helper.rb

  def new_cate?
    if session[:eng_dh] 
      return link_to 'New Category', new_category_path
    end
  end

  def link_to_edit?
    if session[:eng_dh]
      return link_to 'Edit', edit_category_path(cate)
    end
  end

Код, следующий за «return», кажется странным.new_cate?работает как задумано.Но link_to_edit?не.

Есть мысли?Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

Проблема в вашей функции link_to_edit.

На ваш взгляд, передайте переменную cate.

<td><%= link_to_edit(cate) %></td>

и в контроллере

  def link_to_edit(cate)
    if session[:eng_dh]
      return link_to 'Edit', edit_category_path(cate)
    end
  end
2 голосов
/ 17 сентября 2011

Вы имеете в виду переменную области действия метода (которая еще не объявлена ​​в этой области).

Я предполагаю, что вам нужно:

#in controller
def link_to_edit cate
if session[:eng_dh]
  return link_to 'Edit', edit_category_path(cate)
end

end

#in view
<% @categories.each do |cate| %>
  <tr>
    <td><%= cate.name %></td>
    <td><%= cate.description %></td>
    <td><%= link_to_edit cate %>></td>

  </tr>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...