我有一个名为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是方法。但是,对视图呈现的唯一内容是字符串&#39;日期字符串&#39;或者&#39; date_string&#39;。
非常感谢任何有关获取视图类以在模型上调用方法而非属性的帮助。
Business_Hour代码
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的相关部分 &lt;%= form_for(@some_show),html:{class:&#34; form-horizontal pull-left&#34;} do | f | %GT; ... &lt;%= f.fields_for:business_hours do | operating_time | %GT; &lt;%= render:partial =&gt; &#39;共享/ business_hours&#39 ;, :locals =&gt; {:f =&gt; operating_time}%&gt; &lt;%end%&gt;
最后,这是控制器的编辑操作
# GET /some_shows/1/edit
def edit
@some_show = SomeShow.find(params[:id])
end
答案 0 :(得分:0)
所以对我有用的解决方案是从我的模型中取出date_string,并在帮助器中实现它。然后,我修改了我的局部视图,看起来像这样:
<div class='field control-group hour_dropdown_2'>
<div class='field control-group'>
<div class="control-label">
<label><%= get_business_hour_string(f) %></label>
</div>
<h4 class='no-break-h'>From</h4>
<%= select :open_time, available_hours, :include_blank => false %>
<h4 class='no-break-h'>To</h4>
<%= select :close_time, available_hours, :include_blank => false %>
</div>
</div>
我的选择标签仍然被破坏,我不知道为什么我的_address部分我得到了一个f.whatever,但对于BusinessHour部分我没有得到任何形式助手的方式。