我正在开展一个项目,我刚刚介绍了发布文本帖子和照片帖子的多态性。
当我尝试发布图像时,我收到此错误:“'nil'不是与ActiveModel兼容的对象,它返回有效的部分路径。”
第一个展示文件(app / views / dashboards / show.html.erb),代码为:
<%= form_for @text_post do |form| %>
<%= form.text_field :body, placeholder: 'Post content here' %>
<%= form.submit 'Post Title!' %>
<%end%>
<%= form_for @photo_post do |form| %>
<%= form.file_field :image %>
<%= form.submit 'Post Image!' %>
<%end%>
<%= render @posts %>
通过以下代码在app / views / photo_posts / _photo_post.html.erb中显示此内容:
<%= image_tag photo_post.image.url(:post) %>
导致问题的app / views / posts / _post.html.erb是:
<%= div_for post do %>
<%= link_to post.user.username, post.user %>
posted
<%= render post.content %>
<%= link_to time_ago_in_words(post.created_at), post %>
<% end %>
很抱歉,如果我提供的详细信息不足,我是新的ROR开发人员。如果需要,您可以从here分叉或检查项目,(我推了以便您可以检查错误)。
非常感谢任何帮助/指导!
答案 0 :(得分:1)
请尝试
<%= render post.content if post.content %>
而不是
<%= render post.content %>
根据错误日志,这应解决问题。