2010-07-11 20 views
12

Dưới đây là làm thế nào tôi vượt qua các giá trị/biến đến từng phần:đi qua giá trị cho một phần trong đường ray 3

<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"), 
              :text_2 => t(:"main.home.banner_text_2") } %> 

sau đó trong phần:

<%= text_1 %> <%= text_2 %> 

nhưng nhận được "biến địa phương không xác định hoặc phương pháp text_1 "

Tôi nên đặt biến ở đâu để có thể truy cập biến này từ tất cả các chế độ xem và bố cục trong ứng dụng của tôi?

Cảm ơn!

+0

tôi bị cám dỗ để chỉ cần đặt <% = t ("main.home.banner_text_1")%> ngay trong phần - có thể bạn thoát khỏi điều đó? Hay chúng thực sự biến? – sarnold

Trả lời

28

Nếu bạn có một cái gì đó mà đã được hiển thị trên tất cả các quan điểm của bạn, bạn cũng có thể tạo ra một phương pháp application_helper, Ví dụ: banner('Text', 'Content')

Hãy thử điều này:

Trang chính:

<%= render :partial => 'layouts/test', 
      :locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')} 
%> 

phần :

<%= text_1 %> <%= text_2 %> 
+4

nhờ thêm ": partial =>" cuối cùng đã giải quyết được sự cố. Tự hỏi tại sao nó không hoạt động mà không có? Dù sao có, tôi cần phải có điều này được hiển thị trên tất cả các quan điểm của tôi - bạn có thể cung cấp thêm chi tiết về phương thức trợ giúp biểu ngữ ('văn bản', 'nội dung') sẽ như thế nào? cổ vũ – bogumbiker

12

Tôi tin rằng Ra ils 3 đã thay đổi như thế nào bạn vượt qua biến một phần, một cái gì đó như thế này:

<%= render :partial => 'layouts/test', 
     :text_1 => t(:'text_1'), :text_2 => t(:'text_2') %> 

Rails sẽ phân tích đó và kể từ: bản_1 không phải là một chìa khóa được biết đến (như: bộ sưu tập hoặc: như), nó sẽ chuyển sang phần chinh no.

Bạn có thể truy cập nó qua bản_1 hoặc bản_2

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