2010-10-14 27 views
7

Nếu tôi gửi biểu mẫu người dùng mới có lỗi, nó sẽ chuyển hướng đến trang chỉ mục và sau đó hiển thị trang mới trên đầu trang. Trong bộ điều khiển tôi chỉ định rằng nó sẽ chỉ hiển thị hành động mới để người dùng có thể xem/sửa lỗi của họ và gửi lại. Có điều gì rõ ràng mà tôi đang bỏ lỡ không?Rails tạo hành động đang chuyển hướng đến chỉ mục khi nó sẽ hiển thị hành động mới

Đây là tạo hành động trong mã điều khiển của tôi:

def create 
    @user = User.new(params[:user]) 
    @user.role = "owner" 

    if @user.save 
    flash[:notice] = "Registration successful!" 
    else 
    flash.now[:notice] = "You have errors!" 
    render :new 
    end 
end 
+0

Không chắc chắn những gì bạn có ý nghĩa bởi 'chuyển hướng đến trang index sau đó ám chỉ rằng trang mới về trên đỉnh của nó.' Đó là không thể. Nó được hiển thị hoặc chuyển hướng đến chỉ mục. Có bộ lọc nào trên bộ điều khiển của bạn có thể gây nhiễu không? Ngoài ra, có thể bạn sẽ muốn chuyển hướng đến: hiển thị cho người dùng mới từ bên trong nếu @ user.save. Nếu không, Rails sẽ cố gắng hiển thị chế độ xem 'tạo' mà bạn có thể không có. –

+1

địa chỉ đi từ http: // localhost: 3000/người dùng/mới đến http: // localhost: 3000/người dùng, nhưng thực sự hiển thị trang người dùng mới. Và ngay cả khi tôi xem nguồn trang, nó cho thấy nguồn chỉ mục ... Nó thực sự kỳ lạ. Tôi có nó chuyển hướng để hiển thị ngay bây giờ, cảm ơn. – Matt

+1

Tôi có cùng một vấn đề. Bạn đã tìm ra nó chưa? Trong trường hợp của tôi, chuyển hướng i một cách sai, bởi vì tôi cần phải bảo toàn dữ liệu, được nhập bởi người dùng và hiển thị lỗi, rằng ông có thể sửa chữa – AntonAL

Trả lời

0

Tôi nghĩ rằng bạn muốn nói

redirect_to :action => 'new' 
+0

Không nhất thiết. Họ có thể muốn hiển thị lại biểu mẫu với các giá trị do người dùng cung cấp. render: mới nên được tốt ở đây. –

+1

Có chuyển hướng hoạt động nhưng nó không hiển thị lỗi hoặc bất cứ điều gì sau đó. – Matt

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