Rails - 缺少模板(头部第一轨)

时间:2012-09-27 09:44:03

标签: ruby-on-rails ajax

我正在关注Head First Rails的书,并且因为它使用Rails 2而不是3而遇到很多麻烦。目前,我正在通过它让你创建一个预订系统的部分在飞机上的座位。该航班的显示页面部分用于预订的座位,以及一个表格,以便您可以预订座位。

我不能为我的生活让系统工作,这样当您点击“预订座位”时,更改会立即显示在上面的座位列表中。 Rails一直在抱怨当我点击“预订座位”时,座位/更新缺少模板。我甚至直接在头部第一个网站上使用“答案代码”,它仍然无法正常工作!请有人帮忙!!

问题1:

以下是座位的控制器代码:

def create
  @seat = Seat.new(params[:seat])
  render :update do |page|
    if @seat.save
      page.replace_html 'notice', 'Seat was successfully booked'
    else
      page.replace_html 'notice', 'Sorry - the seat could not be booked'
    end
    page.replace_html 'seats', :partial => 'flights/seat_list',
      :locals => {:seats =>  @seat.flight.seats }
  end
end

# PUT /seats/1
# PUT /seats/1.xml
def update
  @seat = Seat.find(params[:id])

  respond_to do |format|
    flash[:notice] = 'Seat was successfully updated.'
      format.html { redirect_to(@seat) }
      format.xml  { head :ok }
    else
      format.html { render :action => "edit" }
      format.xml  { render :xml => @seat.errors, :status => :unprocessable_entity }
    end
  end
end

问题2:

当试图'ajaxify'表单时,本书告诉我使用remote_form_for,据我所知,它不会出现在rails 3中。所以我尝试过使用:

<h1>New seat</h1>
<% form_for(seat), :remote => true do |f| %>
  <%= f.error_messages %>
  <%= f.hidden_field :flight_id %>
  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.label :baggage %><br />
    <%= f.text_field :baggage %>
  </p>
  <p>
    <%= f.submit "Create" %>
  </p>
<% end %>

但这给了我一个错误

  

显示c:/Ruby193/coconut/app/views/flights/_new_seat.html.erb第2行引发:

     

c:/Ruby193/coconut/app/views/flights/_new_seat.html.erb:2:语法错误,意外',',期待关键字_end   “); form_for(seat),:remote =&gt;真的做| f |                      ^   c:/Ruby193/coconut/app/views/flights/_new_seat.html.erb:18:语法错误,意外的keyword_ensure,期待$ end

我正在这里撞墙,任何帮助都会非常感激!!

1 个答案:

答案 0 :(得分:1)

删除_new_seat.html.erb中的逗号并添加等号

<%= form_for(seat), :remote => true do |f| %>