Sat*_*ish 13 ruby ruby-on-rails
我在html erb中有这个代码片段.
对于某些对象,cover_image_url为空,当该属性为null或为空时,如何修改此代码块以使用默认值?
<%@books.each do |book|%>
$('#bookContainer').append('<div class="conn"><p><img class="floatright" src="<%= h book.cover_image_url%>"><h3><%= h book.title%></h3><h3><%= h book.author%></h3></p></div>');
<% end %>
Run Code Online (Sandbox Code Playgroud)
jer*_*son 17
cover_image_url如果数据库中没有设置任何内容,我可以在您的图书模型上定义一个返回默认值的方法(我假设cover_image_url是book表中的一列).像这样的东西:
class Book < ActiveRecord::Base
def cover_image_url
read_attribute(:cover_image_url).presence || "/my_default_link"
end
end
Run Code Online (Sandbox Code Playgroud)
"/my_default_link"如果未设置属性,则返回此属性,如果已设置,则返回属性的值.有关此内容的更多信息,请参阅有关Rails 3 Way的第5.3节.在模型图层中为模型定义默认值可能比在视图图层中进行更清晰.