我有一个带有名为 date_string 的方法的模型。此方法的重点是在共享视图中使用时返回格式化的日期字符串。这是查看代码。
<div class="field control-group">
<div class="control-label">
<%= f.label :business_hour , :date_string %>
</div>
我期望 f.label 调用能够像这个api doc中那样运行,其中 :business_hour 是对象, :date_string 是方法。但是,唯一呈现给视图的是字符串“日期字符串”或“日期字符串”。
非常感谢任何关于让视图类调用模型上的方法而不是属性的帮助。
营业时间代码
class BusinessHour < ActiveRecord::Base
attr_accessible :business_hourable_id,
:business_hourable_type,
:close_time, :day, :open_time,
:order , :business_date
belongs_to :business_hourable , :polymorphic => true
def date_string()
if business_date.nil?
return ''
else
return_string = business_date.strftime( '%a %b\ %e , %Y' )
end
end
结尾
这是完整的部分代码(shared/business_hours):
<div class="field control-group">
<div class="control-label funkiness">
<%= F.label :business_hour , :date_string %>
</div>
<div class="controls">
<%= f.select :open_time, available_hours, :include_blank => true %>
</div>
<div class="control-label">
<%= f.label :open_time, 'Close Time' %>
</div>
<div class="controls">
<%= f.select :close_time, available_hours, :include_blank => true %>
</div>
</div>
这是 _form <%= form_for (@some_show), html: {class: "form-horizontal pull-left"} do |f| 的相关部分 %> ... <%= f.fields_for :business_hours |operating_time| %> <%= 渲染 :partial => 'shared/business_hours', :locals => {:f => operating_time} %> <% end %>
最后,这是控制器的编辑动作
# GET /some_shows/1/edit
def edit
@some_show = SomeShow.find(params[:id])
end