我在我的应用的 index.html.haml 页面中收到undefined method 'image' for nil:NilClass
。
然而,在 show.html.haml 页面上,代码运行正常,图像呈现完美。
我正在关注本教程https://www.youtube.com/watch?v=abcnfFS_DS8,这对他来说非常有用。请在48:16查看。 我经历了好几次,但我仍然无法弄清楚我错过了什么。
这是错误:
显示/home/ubuntu/workspace/app/views/pins/index.html.haml其中 第2行提出:
nil的未定义方法`image':NilClass
提取的来源(第2行):
1 - @pins.each do |pin|
2 = link_to (image_tag @pin.image.url(:medium)), pin
3 %h2= link_to pin.title, pin
这是我的代码:
index.html.haml
- @pins.each do |pin|
= link_to (image_tag @pin.image.url(:medium)), pin
%h2= link_to pin.title, pin
show.html.haml
= image_tag @pin.image.url(:medium)
%h1= @pin.title
%p= @pin.description
%p
Submitted by
= @pin.user.email
pins_controller.rb
before_action :find_pin, only: [:show, :edit, :update, :destroy]
def index
@pins = Pin.all.order("created_at DESC")
end
def show
end
private
def pin_params
params.require(:pin).permit(:title, :description, :image)
end
def find_pin
@pin = Pin.find(params[:id])
end
pin.rb
belongs_to :user
has_attached_file :image, styles: { medium: "300x300#"}
validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/
我设法修复了其他NoMethodErrors,但我无法弄清楚为什么我会得到这个。如果有人可以解释为什么我会收到这个特定的错误,那真的很棒。
答案 0 :(得分:0)
我从评论中得到了答案。
@Sontya写道:
此行有错误
= link_to (image_tag @pin.image.url(:medium)), pin
将其更改为
= link_to (image_tag pin.image.url(:medium)), pin