Tôi không thể tìm ra lý do tại sao các khung nhìn của đường ray không nhận ra flash [: notice] hoặc flash [: error]. Tôi tiếp tục nhận được lỗi sau liên quan đến việc xem một phần được hiển thị. Lỗi cụ thể là:Rails flash [: notice] luôn luôn nil
ActionView :: Mẫu :: Lỗi (Bạn có đối tượng nil khi bạn không mong đợi! Có thể bạn đã mong đợi một phiên bản của mảng. Đã xảy ra lỗi khi đánh giá không. []):
Trong điều khiển của tôi, tôi có
def index
@organisms = Organism.all
flash[:error] = "test"
flash[:notice] = "test"
respond_to do |format|
format.html
format.json { render :json => @organisms }
end
end
Trong file index.html.erb tôi render ra một phần thông qua:
<%= render "shared/flash" %>
Phần có đoạn mã sau.
<div id="flashes">
<% if flash[:notice] %>
<p id="flash_notice" class="messages notice"><%= flash[:notice] %></p>
<%= javascript_tag "$('#flash_notice').effect('highlight',{},1000);" %>
<% end %>
<% if flash[:error] || flash[:errors] %>
<p id="flash_errors" class="messages errors"><%= flash[:error] || flash[:errors] %></p>
<%= javascript_tag "$('#flash_errors').effect('highlight',{},1000);" %>
<% end %>
<% flash[:error] = flash[:errors] = flash[:notice] = nil %>
</div>
Tuy nhiên, nếu thay vì render partial Tôi ném vào <% = thông báo%> nó ám ra thông báo.
Nếu tôi lấy mã một phần và dán nó vào đầu tệp index.html.erb nó hiển thị chính xác. Vì vậy, tôi giả định rằng tôi đang hiển thị một phần xem sai?
Bất kỳ trợ giúp nào được đánh giá cao. Cảm ơn!
Bạn đang thiếu một phần quan trọng: làm thế nào bạn đang render partial. Ngoài ra, không bỏ đặt đèn flash ở phía dưới. Rails đã làm điều đó cho bạn. –
Cảm ơn thông tin. Tôi đã thêm vào cách tôi vẽ một phần. –
u không cần phải làm điều này <% flash [: lỗi] = flash [: lỗi] = flash [: thông báo] = nil%> –