以下是微博视图的相关部分。
<li>
<span class="content"><%= micropost.content %></span>
<span class="product"><%= micropost.product %></span>
<span class="price"><%= micropost.price %></span>
<span class="location"><%= micropost.location %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(micropost.created_at) %> ago.
</span>
<% if current_user?(micropost.user) %>
<%= link_to "delete", micropost, method: :delete,
confirm: "You sure?",
title: micropost.content %>
<% end %>
我最近在微博表中的列中添加了产品,价格和位置。我检查了数据库,这些方面正在被记录/写入但由于某种原因,内容是唯一一个在应用程序上显示的内容。为什么其他人被遗漏了?
这是生成的HTML。我假设这是相关部分。正如你可以看到html的产品,价格和位置永远不会生成。
<li id="1">
<a href="/users/1"><img alt="alex" class="gravatar" src="http://gravatar.com/avatar/a6759dcef8e5aad4e77509e5479b9823.png?s=50" /></a>
<span class="user">
<a href="/users/1">alex</a>
</span>
<span class="content">first</span>
<span class="timestamp">
Posted less than a minute ago.
</span>
<a href="/microposts/1" data-confirm="You sure?" data-method="delete" rel="nofollow" title="first">delete</a>
</li>
我不认为它是attr_accessor和attr_accessible之间的区别,因为内容是attr_accessor并显示出来。另外,我读到了它的不同之处似乎并不重要。我相信attr_accessible是正确的。加上我尝试将其更改为attr_accessor并且它没有用。还有其他想法吗?拜托,谢谢!
答案 0 :(得分:1)
您尝试查看的微博(ID = 1)是否在这些字段中填充了数据(:product,:price,:location)?
答案 1 :(得分:0)
由于生成的HTML甚至没有这些字段的span
标记,因此问题似乎是Rails没有加载视图文件的最新版本。你在生产或开发中运行吗?你重新启动了Rails服务器吗?
另外,如果这些是数据库列,那么attr_accessible
是正确的而不是attr_accessor
是正确的。
您还可以检查是否启用了任何类型的缓存,以显示生成的HTML的缓存副本。例如,您可以更改数据库中的content
值,看看是否反映在生成的HTML中。