我的应用程序有Dwellings
和Roomies
。我正在建立一些认证到Dwelling
视图 - 只有users
谁是当前dwelling
的roomies
应该能够查看某些数据 - 所有其他用户将看到不同的视图。控制器投掷方法定义NoMethodError
为了实现这个功能,我在Users Controller
中创建了一个is_roomie?
方法。该方法是这样的:
## is_roomie? method in Users_Controller.rb ##
def is_roomie?
roomie_ids = []
@dwelling.roomies.each do |r|
roomies_ids << r.id
end
roomie_ids.include?(current_user.id)
end
我把这种方法在Dwelling
观点如下:
## show.html.erb (Dwelling) ##
....
<% if current_user && current_user.is_roomie? %>
....
当我加载页面实现这个之后,我得到以下NoMethoderror:
NoMethodError in Dwellings#show
Showing >/Volumes/UserData/Users/jraczak/Desktop/Everything/rails_projects/Roomie/roomie/app/views/dwellings/show.html.erb where line #5 raised:
undefined method `is_roomie?' for #User:0x00000102db4608>
对于一些背景,我确实尝试了这种方法作为Dwelling
方法,并将其移入User
模型无济于事。预先感谢任何和所有的见解!
这很有用。我不会说我完全理解了第一段中描述的实际问题 - 即我不明白UsersController对象是什么 - 但我会尝试阅读它。谢谢你修理我的路障。 – justinraczak
在users_controller.rb的顶部,您会看到控制器被定义为'class UsersController