2012-12-25 35 views
14

Khi bạn tạo ra một giàn giáo đường ray bằng cách sử dụng lệnh như rails g scaffold Thing là có cách nào để tránh bị làm phiền rằngđịnh dạng Skip JSON trong đường ray tạo giàn giáo

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @things } 
end 

thứ trong điều khiển của bạn?

Tôi đang cố gắng dạy một lớp trên Rails và tôi muốn bắt đầu bằng việc tạo ra một giàn giáo, nhưng với tất cả các định dạng json thì nó phức tạp hơn nhiều so với nhu cầu của nó. Tôi sẽ hạnh phúc hơn nếu họ có thể tạo ra một giàn giáo đã tạo ra một bộ điều khiển như thế này:

class ThingsController < ApplicationController 

    def index 
    @things = Thing.all 
    end 

    def show 
    @thing = Thing.find(params[:id]) 
    end 

    def new 
    @thing = Thing.new 
    end 

    def edit 
    @thing = Thing.find(params[:id]) 
    end 

    def create 
    @thing = Thing.new(params[:thing]) 
     if @thing.save 
     redirect_to @thing, notice: 'Thing was successfully created.' 
     else 
     render: "new" 
     end 
    end 
    end 

    def update 
    @thing = Thing.find(params[:id]) 
     if @thing.update_attributes(params[:thing]) 
     redirect_to @thing, notice: 'Thing was successfully updated.' 
     else 
     render: "edit" 
     end 
    end 
    end 

    def destroy 
    @thing = Thing.find(params[:id]) 
    @thing.destroy 
    redirect_to things_url 
    end 
end 

Trả lời

13

Chỉ cần sao chép các tập tin

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb

đến con đường

lib/rails/generators/rails/scaffold_controller/templates/controller.rb 

của bạn trong ứng dụng của bạn và tùy chỉnh những gì bạn muốn. Ngoài ra, bạn có thể viết máy phát điện của riêng bạn cho giàn giáo (http://guides.rubyonrails.org/generators.html).

+0

Crap, Bạn đánh bại tôi với nó! câu trả lời chính xác! –

0

Bạn sẽ nhận thấy rằng phản ứng JSON được mã hóa trực tiếp vào khuôn mẫu cho các đường ray phát điện ở đây:

https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb

Tôi nghĩ rằng một cái gì đó cần lưu ý là các máy phát điện giàn giáo thực sự là nhằm minh họa và hơn thế nữa giáo dục về cách ngăn xếp Rails hoạt động, nó cho thấy cách bạn có thể chỉnh sửa bộ điều khiển để cung cấp nhiều định dạng khác nhau cho phù hợp với nhu cầu của bạn!

0

Tôi nghĩ bạn đang bỏ lỡ cơ hội. Đối với một điều, bạn sẽ được giảng dạy không chuẩn Rails, vì vậy sinh viên của bạn có thể bị nhầm lẫn khi họ nhìn thấy phiên bản bình thường trong cài đặt riêng của họ.

Quan trọng hơn, bộ điều khiển được định dạng theo cách đó vì một lý do. Rails đặt trọng tâm vào REST, khuyến khích truy cập vào các tài nguyên thông qua nhiều định dạng dữ liệu. Nhiều ứng dụng hiện đại đang làm nổi bật các phản hồi html/erb trả về máy chủ chậm hơn có lợi cho API json. Tôi nhận ra điều này là một ít hơn một năm sau khi OP của bạn, và bạn có thời gian giới hạn trong lớp học, chỉ cần thêm một số suy nghĩ cho bất cứ ai có thể xảy ra bởi. Tôi nghĩ rằng bạn có thể vẫy tay của bạn trên respond_to và nói với họ rằng nó thiết lập bạn cho một số khả năng trong tương lai.

27

Nhận xét về đá quý jbuilder trong các khối Gemfilerespond_to của bạn sẽ không được tạo.

+0

Vẫn hợp lệ trong ** đường ray 5 ** và cũng bỏ qua việc tạo các khung nhìn '.jbuilder'. Đây sẽ là câu trả lời được chấp nhận. –

Các vấn đề liên quan