SORU
24 EYLÜL 2010, Cuma


Raylar 3: Nasıl iç içe geçmiş yeni bir kaynak oluşturmak için?

Uygulamak olmadığından bu kısmı üzerinde parlatıcılar Getting Started Rails Guide Bu tür "yeni" Yorum denetleyicisinin eylem. Benim uygulamada, pek çok bölümleri olan bir kitap modeli var:

class Book < ActiveRecord::Base
  has_many :chapters
end

class Chapter < ActiveRecord::Base
  belongs_to :book
end

Benim güzergah dosyası:

resources :books do
  resources :chapters
end

Uygulamak istiyorum artık "yeni" Faslından eylem denetleyici:

class ChaptersController < ApplicationController
  respond_to :html, :xml, :json

  # /books/1/chapters/new
  def new
    @chapter = # this is where I'm stuck
    respond_with(@chapter)
  end

Bunu yapmak için doğru yolu nedir? Ayrıca, görünüm komut dosyası (form) Ne yapmalıyım?

CEVAP
28 EYLÜL 2010, Salı


İlk bölümlerde ilgili kitap onun için bir bölüm oluşturmak için denetleyicisi bulmak zorunda. Bu gibi eylemler yapabilirsiniz:

class ChaptersController < ApplicationController
  respond_to :html, :xml, :json

  # /books/1/chapters/new
  def new
    @book = Book.find(params[:book_id])
    @chapter = @book.chapters.build
    respond_with(@chapter)
  end

  def create
    @book = Book.find(params[:book_id])
    @chapter = @book.chapters.build(params[:chapter])
    if @chapter.save
    ...
    end
  end
end

Formunuza yeni.html.erb

form_for(@chapter, :url=>book_chapters_path(@book)) do
   .....rest is the same...

ya da kestirme deneyebilirsiniz

form_for([@book,@chapter]) do
    ...same...

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007