Ruby on rails Rails 4如何让页面显示用户';狗的名单
我一直在练习这个rails应用程序,我想让注册用户上传他们的狗的个人资料。但是我就是不能让我的狗页面显示只属于当前登录用户的狗 我已经通过活动记录链接了狗和用户模型(用户有很多:狗,狗属于:用户),但我不知道在我的dogmenu视图中键入什么来只显示属于当前登录用户的狗。这就是我到目前为止所做的:Ruby on rails Rails 4如何让页面显示用户';狗的名单,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我一直在练习这个rails应用程序,我想让注册用户上传他们的狗的个人资料。但是我就是不能让我的狗页面显示只属于当前登录用户的狗 我已经通过活动记录链接了狗和用户模型(用户有很多:狗,狗属于:用户),但我不知道在我的dogmenu视图中键入什么来只显示属于当前登录用户的狗。这就是我到目前为止所做的: views\access\dogmenu.html.erb我建议您在控制器操作中为当前用户的狗设置一个实例变量。大概是这样的: def dogmenu # this assumes you hav
views\access\dogmenu.html.erb我建议您在控制器操作中为当前用户的狗设置一个实例变量。大概是这样的:
def dogmenu
# this assumes you have a current_user already defined
@dogs = current_user.dogs
end
然后切换视图以使用实例变量@dogs
:
<div id="dogdisplay">
<table>
<tr>
<th>Dog Name</th>
<th>Breed</th>
</tr>
<% @dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
</table>
</div>
狗名
繁殖
我建议您在控制器操作中为当前用户的狗设置一个实例变量。大概是这样的:
def dogmenu
# this assumes you have a current_user already defined
@dogs = current_user.dogs
end
然后切换视图以使用实例变量@dogs
:
<div id="dogdisplay">
<table>
<tr>
<th>Dog Name</th>
<th>Breed</th>
</tr>
<% @dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
</table>
</div>
狗名
繁殖
我建议您在控制器操作中为当前用户的狗设置一个实例变量。大概是这样的:
def dogmenu
# this assumes you have a current_user already defined
@dogs = current_user.dogs
end
然后切换视图以使用实例变量@dogs
:
<div id="dogdisplay">
<table>
<tr>
<th>Dog Name</th>
<th>Breed</th>
</tr>
<% @dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
</table>
</div>
狗名
繁殖
我建议您在控制器操作中为当前用户的狗设置一个实例变量。大概是这样的:
def dogmenu
# this assumes you have a current_user already defined
@dogs = current_user.dogs
end
然后切换视图以使用实例变量@dogs
:
<div id="dogdisplay">
<table>
<tr>
<th>Dog Name</th>
<th>Breed</th>
</tr>
<% @dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
</table>
</div>
狗名
繁殖
要获取当前用户的狗,您可以使用objectcurrent\u user
改变这个
控制器
def dogmenu
@dogs = current_user.dogs
end
看法
要使当前用户可以在视图中执行,请放置一个helper方法
class ApplicationController < ActionController::Base
helper_method :current_user
def current_user
@current_user ||= User.find_by_id(session[:user])
end
end
class ApplicationController
最后,您可以在视图或帮助器中使用当前用户
<% current_user.dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
这对于尝试第一个使用实例变量的方法是很好的。希望它能有所帮助。要获得当前用户的狗,您可以使用object
current\u user
改变这个
控制器
def dogmenu
@dogs = current_user.dogs
end
看法
要使当前用户可以在视图中执行,请放置一个helper方法
class ApplicationController < ActionController::Base
helper_method :current_user
def current_user
@current_user ||= User.find_by_id(session[:user])
end
end
class ApplicationController
最后,您可以在视图或帮助器中使用当前用户
<% current_user.dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
这对于尝试第一个使用实例变量的方法是很好的。希望它能有所帮助。要获得当前用户的狗,您可以使用object
current\u user
改变这个
控制器
def dogmenu
@dogs = current_user.dogs
end
看法
要使当前用户可以在视图中执行,请放置一个helper方法
class ApplicationController < ActionController::Base
helper_method :current_user
def current_user
@current_user ||= User.find_by_id(session[:user])
end
end
class ApplicationController
最后,您可以在视图或帮助器中使用当前用户
<% current_user.dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
这对于尝试第一个使用实例变量的方法是很好的。希望它能有所帮助。要获得当前用户的狗,您可以使用object
current\u user
改变这个
控制器
def dogmenu
@dogs = current_user.dogs
end
看法
要使当前用户可以在视图中执行,请放置一个helper方法
class ApplicationController < ActionController::Base
helper_method :current_user
def current_user
@current_user ||= User.find_by_id(session[:user])
end
end
class ApplicationController
最后,您可以在视图或帮助器中使用当前用户
<% current_user.dogs.each do |d| %>
<tr>
<td><%= link_to d.dname, d %></td>
<td><%= d.breed %></td>
<td><%= link_to "Edit", edit_dog_path(d) %></td>
<td><%= link_to "Delete", d, method: :delete %></td>
</tr>
<% end %>
这对于尝试第一个使用实例变量的方法是很好的。希望它能有所帮助。您需要两件事来完成这项工作:
@dogs = current_user.dogs
简而言之,只带上用户id与当前用户id匹配的狗 你需要两件事来完成这项工作:
@dogs = current_user.dogs
简而言之,只带上用户id与当前用户id匹配的狗 你需要两件事来完成这项工作: