不确定该问题是否明确,因为我正在尝试在该问题上找到正确的单词
我正在Rails Active Record上尝试获取用户拥有的数据列表。
当前页面显示为您可以看到的屏幕快照“ Ashford工具拥有的更多设备雇用
它应该显示5种不同的工具,但我似乎无法获得它,我能够获得显示中的所有数据,但无法获得工具的用户列表,似乎我错过了一两个小东西
这是我写的代码。
<!-- More equipment from owner -->
<div class="row">
<h3>More equipment own by <strong><%= @tool.user.company %></strong></h3>
<div class="col-md-2">
<div class="panel panel-default">
<div class="panel-heading preview">
<%= image_tag @tool.images.first, class:"imgnear" if @tool.images.attached? %>
</div>
<div class="panel-body">
<%= link_to @tool.brand, target: :_blank %><br />
</div>
</div>
</div>
</div>
我尝试了“每个功能”,但一直出错
我已经做过current_user,但实际上还没有
<!-- More equipment from owner -->
<div class="row">
<h3>More equipment own by <strong><%= @tool.user.company %></strong></h3>
<% current_user.tools.each do |tool| %>
<div class="col-md-2">
<div class="panel panel-default">
<div class="panel-heading preview">
<%= image_tag tool.images.first, class:"imgnear" if tool.images.attached? %>
</div>
<div class="panel-body">
<%= link_to tool.brand, tool, target: :_blank %><br />
</div>
</div>
</div>
<% end %>
</div>
在工具控制器中
def index
@tools = current_user.tools
end
def new
@tool = current_user.tools.build
end
答案 0 :(得分:1)
我相信您在该屏幕上显示的是ToolsController#show
操作,而不是ToolsController#index
操作。您的show
方法可能如下所示:
def show
@tool = Tool.find(params[:id])
end
或类似地
为了显示其他工具,您需要将它们分配给同一控制器动作内的某个变量。您可以做的是:
def show
@tool = Tool.find(params[:id]) # or however that line looks
@other_tools = @tool.user.tools.where("id != ?", @tool.id)
end
通过这种方式,@other_tools
将包含属于所选工具所有者的所有工具,但将排除所选工具(否则,在“还拥有者”内部,您可以看到与列表)
另一件事,当您在视图中执行current_user.tools
时,将按登录用户(而非拥有主要显示工具的用户)显示项目所有者,如果您登录,则可能看不到错误以所有者身份登录,但如果以其他用户身份登录,则应该看到列表显示了错误的工具。