проблема с хамлом изучаю Ruby на рельсах наткнулся где со следующим - PullRequest
0 голосов
/ 25 сентября 2019

NameError в Posts # index Показывает /home/alexandr/Huntjob/app/views/posts/index.html.haml, где поднята строка # 4:

неопределенная локальная переменная или метод `haml_temp 'для # <#: 0x00005621a21d4538> Вы имели в виду?haml_tag введите описание изображения здесь

Код, где возникает ошибка

- @posts.each do |post|
=link_to (image_tag post.image.url(:small))
%h2= link_to post.title, post
= link_to "Add New Inspiration", new_post_path

Постконтроллер

class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, except: [:index, :show]

def index
@posts = Post.all.order("created_at")

end

def show

end

def new
@post = current_user.posts.build
end

def create
@post = current_user.posts.build(post_params)

if @post.save
  redirect_to @post
else
  render 'new'
end
end

def edit
end

def update
if @post.update(post_params)
  redirect_to @post
else
  render 'edit'
end
end

def destroy
 @post.destroy
 redirect_to root_path

 end

 private

 def find_post
  @post = Post.find(params[:id])
  end

  def post_params

  params.require(:post).permit(:title, :link, :description, :image)
  end


   end

1 Ответ

0 голосов
/ 25 сентября 2019

HAML чувствителен к отступам.На скриншоте видно, что проблема в отступах.

Это должно сработать:

- @posts.each do |post|
  = link_to(image_tag post.image.url(:small))
  %h2= link_to post.title, post
= link_to "Add New Inspiration", new_post_path

Убедитесь, что перед строкой 2 и 3 у вас есть два пробела.

...