我想从我的数据库中检索数据并在视图中显示它。
我的控制器是:
bancas_controller.erb
def show
@user = current_user
@a=Banca.find_by(user_id: @user.id)
end
观点是:
banca: <%=@a%>
我的模型有一些属性:num
,scadenza
和user_id
。我不明白为什么我的观点是这样的:
banca: #<Banca:0xb715330>
答案 0 :(得分:0)
刚做
@a=Banca.find_by(user_id: @user.id)
返回带有某个所需id的记录。要获得所需的属性,请使用
@a.attribute_name
@a.name
@a.email
@a.gender
如果您想要查看所有属性,请使用@a.inspect
。
答案 1 :(得分:0)
<%=@a%>
将运行erb标记中的代码,然后在结果上调用to_s
。如果您在ActiveRecord对象上调用to_s
,那么您将获得所看到的结果。您需要在erb标记中决定如何显示与对象关联的数据。例如
banca: <%= @a.scadenza %>
或其他什么。
答案 2 :(得分:0)
Find by是一个动态查找程序,它就像使用where子句一样,即使只有一个子句,它也会返回一个Active Record关系。只需弹出.first
即可获得第一个,如果这是你想要的。
@a=Banca.find_by(user_id: @user.id).first
答案 3 :(得分:0)
@a是一个对象。在视图中执行此操作@ a.inspect以查看其属性。要迭代它,请使用.each或.map。