В моем приложении Rails у меня есть проекты, которые имеют много шагов, и каждый шаг имеет много изображений.Rails Query: Неопределенный метод для nil: NilClass
Я пытаюсь пометить ссылки на страницы каждого шага информацией о шаге, в частности, имя шага и образ по умолчанию, связанный с этапом.
<%= link_to "", project_step_path(@project, i), :class=> "dot",
data: {title: steps.find_by_number(i).name,
image: steps.find_by_number(i).images.order("position ASC").first.file} %>
Тэг данных заголовка возвращает имя шага, но я получаю сообщение об ошибке с тегом данных изображения. Когда я пытаюсь использовать его в консоли rails, он возвращает путь к файлу изображения, но когда я пытаюсь реализовать его в своем приложении, я получаю ошибку undefined method `file 'для nil: NilClass.
Когда я удаляю «файл» из моего тега изображения (так что это изображение: шаги.find_by_number (i) .images.order («позиция ASC»)), и я возвращаю то, что для тега данных изображения для каждого link, я получаю [object Object].
Как я могу получить его для возврата правильного результата запроса?
Вот мой шаги контроллер:
class StepsController < ApplicationController
before_filter :get_project
def show
@step = @project.steps.find_by_number(params[:id])
@image = Image.new
@images = @step.images.order("position")
@steps = @project.steps.order("number")
@numSteps = @steps.count
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @step }
end
end
private
# get_project converts the project_id given by the routing
# into an @project object
def get_project
@project = Project.find(params[:project_id])
end
end
Можете ли вы опубликовать свой код контроллера? – eabraham