2012-06-19 23 views
5

Bất cứ khi nào một trong những vụ cháy bưu phẩm ra nếu cơ thể có chứa một cái gì đó giống như link_to root_url nó mang lại cho lỗi vô cùng vô ích này:ứng dụng thừa kế với lỗi định tuyến lạ, Không trận tuyến đường {}

ActionView::Template::Error: No route matches {} 

Các dấu vết hoặc là vô ích hoặc điểm phương thức link_to. Vì nó cũng rất không thể tìm thấy ở đây, tôi hỏi về tràn ngăn xếp.

UPDATE 1: Để giúp đỡ, tôi đã đăng những đáng sợ routes.rb file: https://gist.github.com/2955610

UPDATE 2: Trong giao diện điều khiển, app.root_url cung cấp sự trở lại đúng.

CẬP NHẬT 3:link_to "whatever", root_url hoạt động tốt. Lạ quá!

CẬP NHẬT 4: Nó hoạt động tốt trong chế độ xem đường ray thông thường.

CẬP NHẬT 5:FIXED Các image_tag bây giờ không phải cung cấp một loạt trong email, xuất ra: http://assets/...png. Fffff.

CẬP NHẬT 6: Tôi đã thu hẹp nó xuống để tôi gặp lỗi tương tự với (trong bảng điều khiển) app.url_for. Tôi nghĩ nó có thể liên quan.

+1

Chỉ trong trường hợp, bạn có 'root: to =>" something "' trong routes.rb không? – dimuch

+0

@dimuch Tôi sẽ đăng tệp Tuyến đường của mình, xem ra, thật xấu xí. – krainboltgreene

+0

Bạn cũng có thể hiển thị một vài dòng từ các mẫu gây ra lỗi không? – dimuch

Trả lời

6

Câu trả lời thực sự là link_to hoạt động khác trong ActionMailer so với ActionController. Sự khác biệt là dường như ActionController có một tùy chọn được gọi là :script_name, và điều này làm cho tất cả các loại giả định cho bạn.

Bây giờ trong khi tôi không đồng ý với sự khác biệt mà không có nhiều bạn có thể làm gì về nó, vì vậy đây là những gì tôi đã kết thúc thực hiện:

link_to root_url, root_url 

Bây giờ, tại sao tôi sẽ sử dụng cả hai? Vâng, hai lý do:

  1. Tôi muốn url là văn bản liên kết và href.
  2. Nếu URL thay đổi, tôi không muốn phải cập nhật tất cả các chuỗi đó.
+0

thật đáng kinh ngạc, tôi đã dành cho hành vi bất ngờ này hơn 3 giờ rồi. Cảm ơn bạn rất nhiều. – antiqe

+0

Cảm ơn rất nhiều! Tôi vừa mất vài giờ để xử lý nó. –

0

Vấn đề với người gửi thư là có thể bạn bỏ lỡ tùy chọn "lưu trữ"? :)

+0

Trong tệp 'production.rb' của tôi, tôi có tập này:' config.action_mailer.default_url_options = {host : "www.connectforacause.com "}' – krainboltgreene

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