所以我正在开发一个涉及狗日托的Rails应用程序。我正在尝试帮助最终帮助预订验证但是现在我只是想把它变成从预订表中显示所有的狗舍并将这些名字放入数组
这是我得到的错误error image
以下是预约助手的代码:
module ReservationsHelper
def available_kennels
availability = Array.new
@r.all.each do|kennel|
availability.push(kennel)
end
return availability
end
end
在预订控制器中,我将@r分配给reservation.all
这是控制器:
class ReservationsController < ApplicationController
def new
@reservation = Reservation.new
@d = current_user.dogs
@r = reservation.all
end
def create
@reservation = current_user.reservations.build(r_params)
if @reservation.save
flash[:success] = "Reservation has been made"
else
render new
end
end
def r_params
params.require(:reservation).permit(:dog_id, :kennel_id, :startdate, :enddate, :status, :report)
end
end
至于kennels,这个表唯一具有标准id和名称。
我知道我很亲密。
答案 0 :(得分:1)
预订是一个类,因此需要大写。我还建议使用预留而不是r作为变量。更容易阅读新的开发人员。希望这可以帮助你:
reservations = Reservation.all
你的数组有点应该是
@reservations.each do |reservation| // or @r in your case
在你的代码中| kennel |实际上被用作个人预订而不是狗窝,因为我猜你想要的。如果您的关系是正确的并且预订属于狗舍,您可以:
def available_kennels(@reservations)
availability_array = []
@reservations.each do |reservation|
availability_array = availability_array.push(reservation.kennel.name)
end
return availability_array
end
同样,我稍微更改了变量名称,以帮助您了解正在发生的事情。当您将其放入管道时,您正在定义预留。要在ruby中定义数组,您可以执行array = []。它与javascript有点不同。
如果您想在视图中获取列表,您还可以使用视图模板:
http://guides.rubyonrails.org/layouts_and_rendering.html
<ul>
@reservations.each do |reservation|
<li>
<%= reservation.kennel.name %>
</li>
end
</>ul