我尝试在@user对象中访问数组的第一个元素并获取第一个对象 超出那个数组。我只是说它不起作用。这是代码:
<%= form_for(@user) do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<% if params[:redirect_to] -%>
<%= hidden_field_tag 'redirect_to', params[:redirect_to] %>
<% end -%>
#Thats not working
Last booking: <%= f.text_field Booking.where("user_id="+ @user.id+").order('start_date DESC').first%>
<% end %>
答案 0 :(得分:0)
首先,您试图将整个Booking对象推入字段,这似乎是错误的,可能您需要一些特定的值,如booking_date或类似的东西。
Booking.where(user_id: @user.id).order(:start_date).last.booking_date
其次,您有语法错误,text_field方法需要用户模型字段的名称。如果你定义了has_many:预订,那么你应该使用fields_for。请记住,如果您使用form_for表单构建器您必须引用模型字段,如果您需要自定义使用text_field_tag
。
text_field_tag :booking, Booking.where(user_id: @user.id).order(:start_date).last.booking_date