0

我尝试访问我的@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 %>
4

1 回答 1

0

首先,您试图将整个 Booking 对象推入该字段,这似乎是错误的,可能您想要一些特定的值,例如 booking_date 或类似的东西。

Booking.where(user_id: @user.id).order(:start_date).last.booking_date

其次,您有一个语法错误,并且 text_field 方法需要用户模型字段的名称。如果您定义了 has_many :bookings 那么您应该使用 fields_for。请记住,如果您使用 form_for 表单构建器,您必须引用模型字段,如果您需要自定义使用的东西text_field_tag

text_field_tag :booking, Booking.where(user_id: @user.id).order(:start_date).last.booking_date
于 2013-10-13T21:19:58.600 回答