Tôi muốn thêm một vài biến mẫu vào trình điều khiển của mình, vì các biến trong câu hỏi được yêu cầu từ trong chế độ xem nhiều hơn một hành động. Tuy nhiên, ví dụ dưới đây không hoạt động như tôi mong đợi.Tại sao các biến mẫu của trình điều khiển của tôi không hoạt động trong các khung nhìn (Rails)
class ExampleController < ApplicationController
@var1 = "Cheese"
@var2 = "Tomato"
def show_pizza_topping
# What I want is the above instance vars from within the view here
end
def show_sandwich_filling
# What I want is the above instance vars from within the view here
end
end
Như tôi đã hiểu, Rails nhận các biến mẫu từ bộ điều khiển và làm cho chúng có sẵn trong chế độ xem. Nếu tôi gán các biến tương tự trong các phương thức hành động, nó hoạt động tốt - nhưng tôi không muốn làm điều đó hai lần. Tại sao con đường của tôi không hoạt động?
(Lưu ý: đây là một chút của một ví dụ rác, nhưng tôi hy vọng nó có ý nghĩa)
EDIT: Tôi đã tìm thấy câu trả lời cho câu hỏi này ở đây: When do Ruby instance variables get set?
EDIT 2: khi là thời điểm tốt nhất để sử dụng các bộ lọc như before_filter và phương thức khởi tạo?
Có, cảm ơn bạn. Tuy nhiên, ngay sau khi đăng bài này tôi tìm thấy một câu trả lời (tôi cập nhật các câu hỏi để phản ánh điều này). Khi nào là thời điểm tốt nhất để sử dụng before_filter và/hoặc khởi tạo? –
Tôi sẽ nói rằng bạn nên sử dụng before_filter nếu đó là bất kỳ loại công việc nào được thiết lập để hoạt động trên nhiều hành động. – theIV
Là một ví dụ về bình luận mà tôi vừa để lại, khi xác minh rằng ai đó đã đăng nhập, bạn có thể có một phương thức trong 'ApplicationController' và áp dụng' before_filter' cho bất kỳ hành động nào yêu cầu người dùng đăng nhập. Có nghĩa là có mã đó trong mọi hành động yêu cầu ai đó đăng nhập. – theIV