我有一个名为users的表,它与表部门has_and_belongs_to_many 有关联。在views/users/index.html.erb 中,我想用字符串Example 显示属于用户的部门:“Image, Direction”。我已经在控制台中使用下一个代码从用户那里获得了这个字符串:
> p1 = users.find(1)
> pd1 = p1.departments
> for dep in pd1 do
* t=t + dep.name+", "
>end
>t=t[0..-3]
我的意见/用户/index.html.erb 就像:
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
<td><%= user.phone %></td>
<td><%= user.birthday.strftime("%d/%m/%Y") %></td>
<td><%= user.findDepartments %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
所以我正在尝试使用 user.findDepartments 来显示字符串。我在用户控制器中定义了 findDepartments 方法:
def self.findDepartments
d=self.departments
for dep in d do
t=t+dep.name+ ", "
end
t=t[0..-3]
end
我收到的错误是: undefined method `findDepartments' for #
编辑:我刚刚意识到该怎么做。只需从控制器中删除 findDepartments 方法,并通过以下修改将其放入用户模型中:
def findDepartments
t=""
d=self.departments
puts d
for dep in d do
t=t+dep.name+ ", "
end
t=t[0..-3]
end