访问表单中的对象 - Rails

时间:2013-10-13 21:01:48

标签: ruby-on-rails ruby sqlite

我尝试在@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 %>

1 个答案:

答案 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