在我的控制器中,我找到了uniq笔记本和用户名。 但我希望能够检查我的HTML代码,它只显示一种类型的用户。
控制器中的
def index
@allnotebooks = Note.uniq.pluck(:string, :notebook)
@notes = Note.all
end
在我的HTML中
<% @allnotebooks.each do |notebook| %>
<% if notebook.string == c_user.name %>
<option><%= notebook %></option>
<% end %>
<% end %>
notebook.string不起作用。我缺少什么
答案 0 :(得分:1)
除了使用pluck之外,你可以用不同的方式做,使用select你可以做到 像 -
在控制器代码中 -
def index
@allnotebooks = Note.uniq.select([:string,:notebook])
@notes = Note.all
端
你的HTML中的
<% @allnotebooks.each do |notebook| %>
<% if notebook.string == c_user.name %>
<option><%= notebook %></option>
<% end %>
<% end %>
感谢!!!
答案 1 :(得分:0)
Pluck返回一个数组。
尝试notebook.first
或notebook[0]
文档:http://apidock.com/rails/ActiveRecord/Calculations/pluck
底部的第二个例子适用于此。
答案 2 :(得分:0)
我不是一个好红宝石的家伙,你可以像
一样写<% @allnotebooks.each_with_index do |notebook, index| %>
<%= notebook[index].string %> => <%= notebook[index].notebook %>
<% end %>
对于“a”独特的笔记本,你需要循环吗? 只是说:
@allnotebooks.each{|notebook| <%= notebook[0] %> <%= notebook[1] %> }
但是可以有更好的方法。
答案 3 :(得分:0)
在你的例子中应该是:
<% @allnotebooks.each do |notebook| %>
<% if notebook[0] == c_user.name %>
<option><%= notebook[1] %></option>
<% end %>
<% end %>
顺便说一句,你可能只想加载字符串等于用户名字的笔记本来改善这一点。