我的表稱爲用戶具有與表部門關聯has_and_belongs_to_many。 在views/users/index.html.erb中,我想用屬性字符串顯示屬於用戶的部門。示例:「圖像,方向」。我已經得到這個字符串格式在我的控制檯下一個代碼用戶:Rails的:創建一個方法在控制對象[解決]
> 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
而我收到的是錯誤:#
感謝 未定義的方法`findDepartments'!
編輯:抱歉,我剛剛realase如何做到這一點。只是刪除從控制器findDepartments方法,並把它與這些修改用戶模型:
def findDepartments
t=""
d=self.departments
puts d
for dep in d do
t=t+dep.name+ ", "
end
t=t[0..-3]
end
你能發佈完整的錯誤信息嗎? – dax
您應該在模型中定義findDepartments,而不是在您創建findDepartments作爲類方法的控制器 –
中,但您嘗試將其稱爲用戶上的實例方法 – klaffenboeck