Итак, у меня есть контроллер календаря и вид, называемый _show.html.erb (это частичный, который загружается в больший вид). Я пытаюсь использовать атрибут «start_at», который принадлежит объекту модели «событие», но мой html подчеркивает, что он «не может найти start_at».Почему переменная не распознана в моем файле _show.html?
Если я пытаюсь и загрузить свою главную страницу дает ошибку:
NoMethodError в Pages # основной
не определен метод `каждый» для ноль: NilClass
Вот календарь контроллер с моим показать метод:
class CalendarsController < ApplicationController
def new
@calendar = Calendar.new(calendar_params)
end
def create
@calendar = Calendar.new(calendar_params)
end
private
def calendar_params
params.require(:customer_id)
end
def show
@calendar = current_customer.calendar
@events = @calendar.events
end
end
Мои события контроллер:
class EventsController < ApplicationController
before_filter :logged_in?
def new
@event = Event.new
@calendar = current_customer.calendar
end
def create
@calendar = current_customer.calendar
@event = @calendar.events.build(event_params)
if @event.save
redirect_to '/main' #'/main/#{@calendar.id}'
else
redirect_to '/compose'
end
end
Вот _show.html.erb сниппет:
<td id = "mon900" class ="freeslot" width=75 valign=top>
<p class=MsoNormal style='margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal'> </p>
<% @events.each do |e|%>
<p><%= e.starts_at %></p> <!-- It wont pick up starts_at-->
<% end %>
</td>
Вот код, где я рендеринга это частичное. Он визуализируется в main.html.erb, которая принадлежит мой контроллеру Страницы:
<%= render partial: '/calendars/show', locals: {} %>
Страница контроллер:
class PagesController < ApplicationController
#before_action :require_customer, only: [:main]
def home
end
def main
end
end
Просто для ясности, здесь мой календарь и событие модели:
class Calendar < ActiveRecord::Base
belongs_to :customer
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :calendar
end
Атрибут: starts_at события имеет тип даты и времени. Когда я узнал, как делать рубины на рельсах (по общему признанию, недавно), мне сказали, что такая рубиновая инъекция будет работать. В чем проблема? Благодаря!
Что вы имеете в виду это обыкновение забрать? Вы получаете нулевое значение? ошибка? – Pavan
он подсвечивает его, говоря «can not find starts_at» – Sarahshuffle
Обновите свой вопрос с полным сообщением об ошибке. – Pavan