2011-06-27 34 views
17

Hiện đang làm việc trên một dự án và đã gặp phải sự cố mà tôi chưa từng gặp trước đây. Hiện đang thực hiện một trang đăng nhập đăng nhập yêu cầu người dùng đăng ký. Tôi đã có một phương thức không xác định `name'error trước đây, và sau đó nhận ra rằng phương thức này không được gọi là tên nó được gọi là full_name. Tôi đã đi qua tất cả các thư mục để đảm bảo rằng bất kỳ phương pháp hoặc thuộc tính nào không được gọi là 'tên' và đổi tên thành 'full_name. Có làm mới trình duyệt tôi nhận được lỗi sau mà tôi chưa từng thấy trước đây. Một số người có thể giải thích lỗi này là gì và tôi có thể giải quyết nó như thế nào.Mẫu bị thiếu

Template là mất tích

Thiếu người dùng mẫu/tạo với {: xử lý => [: ERB,: RJS,: xây dựng, : rhtml,: rxml],: định dạng => [: html ], : locale => [: en,: en]} theo quan điểm đường "C:/Users/patterd/Documents/Dự án/app/views"

Trả lời

42

lỗi này xảy ra nếu bạn không chuyển hướng trong phương thức create của bộ điều khiển.

Bạn đang chuyển hướng trong phương thức tạo trong bộ điều khiển hoặc hiển thị biểu mẫu mới, trong trường hợp có lỗi?

Nếu không có chuyển hướng trong phương thức tạo trong bộ điều khiển, bạn cần tạo một tệp mới có tên create.html.erb. Thông thường, sau khi tạo thành công, bạn chuyển hướng đến một số trang khác như được hiển thị bên dưới

def create 
    # some object you want to create 
    # if the object.save is fine 
    # redirect_to object 
    # else 
    # render new with the errors 
    # end 
end 
+0

Tôi có user_Controller và chứa phương thức tạo. Mà sau 'code'def tạo @user = User.new (params [: user]) nếu @ user.save # Xử lý lưu thành công. else @title = "Đăng ký" hiển thị 'mới' kết thúc kết thúc – David

+3

OK.au khi lưu, chuyển hướng đến một số trang, ví dụ: chuyển hướng: action =>: hiển thị, để chuyển đến một trong các trang mà bạn có với phần mở rộng .html.erb. thông thường nó sẽ là index.html.erb (redirect_to: action =>: index) hoặc show.html.erb (redirect_to: action =>: show) – felix

+0

Oh okay bạn có. Tôi nhận được lý do tại sao tôi nhận được lỗi này. Cảm ơn nhiều. – David

19

Trong trường hợp của tôi, tôi đã xử lý và không hiển thị chế độ xem.

def return_payment 
    # do lots of stuff 

    head :ok 
end 
+0

Điều đó cũng có thể hoạt động – David

2

tôi đã cùng một vấn đề và lý do là tôi rời phương pháp 'tạo ra' trống rỗng vô tình khác :)

2

Nói chung thiếu mẫu lỗi xảy ra -khi bạn không có xem tập tin của phương pháp đó của bộ điều khiển, hoặc -if một phương pháp chỉ để tính toán mà không có bất kỳ tệp xem nào, thì bạn phải có để hiển thị/chuyển hướng phương thức.

Nếu bạn không hiển thị hoặc chuyển hướng phương thức, nó sẽ tìm kiếm trang xem của tên phương thức hiện tại (trong trường hợp của bạn, nó sẽ tìm kiếm create.html.erb). Do đó, bạn phải kết xuất/chuyển hướng phương thức .

0

Tôi đã gặp sự cố tương tự và chỉ cần thêm redirect_to và nó đã hoạt động!

def update 
    @visitor = Visitor.find(params[:id]) 
    if @visitor.update_attributes(visitor_params) 
     flash[:notice] = "Update ok!" 
     redirect_to root_path #just added this line and it worked! 
    else 
     render 'edit' 
    end 
end 
Các vấn đề liên quan