Rails 3, Как добавить действие для проектов - PullRequest
2 голосов
/ 18 сентября 2010

У меня есть представление индекса проекта, которое показывает все проекты в приложении

Я хочу, чтобы это представление показывало, вошел ли пользователь в систему или нет ....

В представлении индекса проекта у меня есть:

    <% if teammember? %>
        <td>Request to Join</td>
    <% else %>
        <td>Already Joined</td>
    <% end %>

Тогда в контроллере проекта у меня

def teammember(projectid)
 do some stuff.....
end 

Но это дает мне "неопределенный метод` teammember? "

Ответы [ 2 ]

4 голосов
/ 18 сентября 2010

Вы не включаете метод teammember в контроллер, вы помещаете его в вспомогательный файл (app / helpers / project_helper.rb)

module ProjectHelper
  def team_member?(project_id)
    # include other logic here
    true
  end
end

Затем в любом представлении, что ваш контроллер проектаВы можете сделать:

<% if team_member?(project.id) %>
  This is a team member.
<% else %>
  This isn't a team member.
<% end %>
1 голос
/ 18 сентября 2010

Если это метод контроллера, к которому вам нужен доступ в представлении, вы можете сделать его доступным следующим образом:

class ProjectsController < ActionController::Base
  helper_method :team_member?
end

По сути, это то же самое, как если бы вы определили метод в helpers/projects_helper.rb

Просто убедитесь, что вы вызываете методы одинаково: ваш пример показывает один с вопросительным знаком, а другой без.

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