Nếu bạn cần thêm chức năng trong chế độ xem của mình, bạn thường khai báo những chức năng bên trong trình trợ giúp.
Đối với mỗi bộ điều khiển, nếu có trình trợ giúp, nó sẽ được tải tự động. Ví dụ, nếu bạn có một PeopleController, trong thư mục app/helpers
, cần có một people_helper.rb
, và nó sẽ giống như thế này
module PeopleHelper
def name
#do something
username
end
end
khác, thay thế rất sạch sẽ, là sử dụng Presenterpattern, nhưng tôi nghĩ rằng nó ít phổ biến hơn (không may).
Ngược lại, nếu bạn cần nhiều dòng mã ruby bên một cái nhìn ERB, mà tôi cố gắng tránh, tôi thích phong cách sau đây:
<%
counter_1 = 0
counter_2 = 1
do_some_more_prep_here
%>
<% @records.each do |rec|%>
<%# do something with the prepped date in each row %>
<% end %>
Cũng cho tôi mã thụt đầu dòng quan trọng hơn html thụt đầu dòng , vì vậy tôi sẽ thích một cái gì đó như
<table>
<% @rows.each do |row| %>
<tr>
<td><%= row.item1 %></td>
<% if row.some_test %>
<td><%= row.item2 %></td>
<% end %>
</tr>
<% end %>
</table>
Nhưng tôi luôn rất quan tâm để nghe ý kiến khác nhau về vấn đề này.
Tại sao bạn đang cố tạo hàm trong chế độ xem? Nó thuộc về nhiều khả năng nhất trong mô hình, hoặc nếu không vào trong bộ điều khiển, nhưng chắc chắn không nhìn vào khung cảnh – jigfox
Xin lỗi, tôi chỉ cần gõ một số mã vào đó làm ví dụ. – ben