Rails 3,如何为Projects添加操作

时间:2010-09-18 01:07:58

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

我有一个项目索引视图,显示应用程序中的所有项目

我希望该视图显示登录的用户是否是成员....

在项目索引视图中,我有:

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

然后在项目的控制器中我有

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

但这给了我一个“未定义的方法`团队成员?”

2 个答案:

答案 0 :(得分:4)

你没有在控制器中包含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 :(得分:1)

如果这是您需要在视图中访问的控制器方法,则可以使其可用:

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

这与您在helpers/projects_helper.rb

中定义方法的方式基本相同

请确保您调用方法相同:您的示例显示一个带问号,一个没有问号。