0

私は Head First Rails の本に従っていますが、Rails 3 ではなく Rails 2 を使用しているため、多くの問題を抱えています。フライト。フライトのショー ページには、予約済みの座席の一部と、座席を予約できるフォームがあります。

「座席を予約」をクリックすると、変更がすぐに上の座席リストに表示されるようにシステムを機能させることはできません。「シートの予約」をクリックすると、シート/更新用のテンプレートが欠落していると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: 構文エラー、予期しない ','、keyword_end が必要です '); form_for(seat), :remote => true do |f| ^ c:/Ruby193/coconut/app/views/flights/_new_seat.html.erb:18: 構文エラー、予期しない keyword_ensure、$end が必要です

ここで壁に頭をぶつけています。どんな助けでも大歓迎です!!

4

1 に答える 1