2016-06-08 58 views
0

我想添加glympconiconf.submitf.button。我怎样才能做到这一点在铁轨?如何将glympcon图标添加到rails中的提交按钮?

<% if action?('new') %> 
    <%= f.button "Save", :class=>"btn btn-primary btn-sm" ,:id => "validation" do%> 
     <i class='fa fa-plus'></i>Add Shift 
    <%end%> 
    <%else%> 
    <%= f.button "Save", :class=>"btn btn-primary btn-sm" ,:id => "validation" do%> 
    <i class='fa fa-save'></i>Edit Shift  
    <%end%> 
    <%end%> 

这是给icons我想要什么。但如果有任何model validation error发生在new窗体我想显示textbuttonAdd Shift和类似如果在edit form发生任何错误,我想显示button文本Edit Shift。我怎样才能做到这一点在铁轨?

+0

请澄清你如何希望你想要的结果看起来像。你想要按钮文本保存“添加班次”而不是“保存”?你想把文本放在哪里?是否有关于在出现错误时添加图标(如主题所述)或添加(放置?显示?)自定义文本的问题? –

+0

例如我有一个字段“班名”在这个领域有一个存在验证。如果验证在“新”操作中失败,则它再次呈现“新”页面。所以在这个页面中,我希望按钮文本是“创建轮班”,同样当“编辑”操作中的验证失败时,它会再次呈现相同的页面,在此我希望按钮文本是图标的“编辑轮班” 。 – John

+0

看看我的回答是否有帮助。还请更新标题,因为它会询问如何将图标添加到按钮,并且您似乎想要根据验证错误的存在来更改按钮名称。 –

回答

0

希望我明白你想要什么。如果您使用ActiveRecord存在验证,则目标模型对象(您构建表单的对象)将具有“错误”属性,并且可供您使用。属性的值是一个数组,所以你可以检查任何?在这。

您可以直接在视图中进行检查,例如,

<%= f.button(@main_object.errors.any? "Add Shift" : "Save", class: "btn btn-primary btn-sm", id: "validation") do %> 
     <i class='fa fa-plus'></i><%= @main_object.errors.any? "empty??" : "Add Shift" %> 
<% end %> 

,也可以定义一个helper方法,无论是对布尔值(隐藏@ main_object.errors.any?电话),或在此基础上适当的标签文本(或任何其他)检查返回的字符串。

如果你想要把任何图标或标签基于相同的条件下,简单地做

<%= f.button "Save", class: "btn btn-primary btn-sm", id: "validation" do %> 
     <%= "<i class='fa fa-plus'></i>" unless @main_object.errors.any? %> 
     <% if [email protected]_object.errors.any? %> <i class='fa fa-plus'></i> <% end %> 
     <%= "Add Shift" if @main_object.errors.any? %> 
<% end %> 

帮助?