2009-06-18 46 views
30

Tôi có QuestionController Tôi hiện có AnotherQuestionController với các hành động sẽ hiển thị bằng mẫu và partials trong ứng dụng/views/question/ Điều này có khả thi không? Có vẻ như nó phải thế.Một bộ điều khiển hiển thị bằng cách sử dụng các chế độ xem của bộ điều khiển khác

Tôi đã thử

render :template => "question/answer" 

nhưng answer.html.erb bao gồm partials và tôi nhận được lỗi như

"Thiếu mẫu another_question/_my_partial.erb theo quan điểm của con đường"

Vậy là có một cách để nói với Rails "điều trị AnotherQuestionController như thể QuestionController của nó và tìm kiếm quan điểm và partials trong app/views/question"? Hoặc tôi sẽ phải tạo ứng dụng/lượt xem/another_question - điều này sẽ gây ra sự trùng lặp (điều này không thể là cách Rails).

Cảm ơn

Trả lời

44

Mẫu vẽ thực sự nên làm việc

render :template => "question/answer" 

Vấn đề bạn đang gặp là từ partials tìm kiếm tại địa điểm sai. Việc sửa chữa rất đơn giản, chỉ cần làm cho partials của bạn tuyệt đối trong bất kỳ mẫu được chia sẻ nào. Ví dụ, câu hỏi/answer.html.erb nên có

<%= render :partial => 'question/some_partial' %> 

chứ không phải là bình thường

<%= render :partial => 'some_partial' %> 
+0

này đã không làm việc tôi sợ – Paul

+0

oh đúng. Trong lần kiểm tra thứ hai tôi đã tìm ra vấn đề thực tế –

+0

Bất kỳ cách nào mới để làm điều này trong đường ray 3.x? Tôi đang hỏi vì tôi đang sử dụng một viên ngọc cho phép người trợ giúp tự động thực hiện hiển thị trong khung nhìn (nếu không giải pháp của bạn sẽ hoạt động). Tôi thà không ghi đè lên những người giúp đỡ của viên đá quý đó. Cảm ơn! – montrealmike

0

Bạn có thể thử các plugin inherit_views (http://github.com/ianwhite/inherit_views/tree/master) tôi đã đề cập ở đây trong câu trả lời cho this question.

+0

Cảm ơn, tôi sẽ xem xét điều này. Có vẻ như rất nhiều công việc mặc dù nó không. Tôi đã có thể nghĩ render() sẽ có các tùy chọn cho phép chỉ định các view/partials của một controller khác. Ah tốt. – Paul

12

Bạn có thể đạt được điều đó với:

render 'question/answer' 
+0

Điều này cũng sẽ kích hoạt tất cả các before_actions trong bộ điều khiển đó? – Dahnny012

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