Pau*_*aul 4 truncate ruby-on-rails-3
如何截断collection_select中的值
<%= collection_select(:standard, :parent_id, Standard.all, :id, :value, {:include_blank => 'No Parent'} ) %>
Run Code Online (Sandbox Code Playgroud)
我希望缩短价值,但是我遇到了错误:
<%= collection_select(:standard, :parent_id, Standard.all, :id, truncate(:value, :length => 40), {:include_blank => 'No Parent'} ) %>
Run Code Online (Sandbox Code Playgroud)
选项1:
向您的模型添加自定义方法,类似于truncated_value,并使用它:
class Standard < ActiveRecord::Base
include ActionView::Helpers::TextHelper
def truncated_value
truncate(value, :length => 40)
end
...
...
...
end
Run Code Online (Sandbox Code Playgroud)
然后在你看来:
<%= collection_select(:standard,
:parent_id,
Standard.all,
:id,
:truncated_value,
{:include_blank => 'No Parent'}) %>
Run Code Online (Sandbox Code Playgroud)
选项2:
只需使用select标记助手:
<%= select(:standard,
:parent_id,
Standard.all.collect{ |s| [truncate(s.value, :length => 40), s.id] },
{:include_blank => 'No Parent'}) %>
Run Code Online (Sandbox Code Playgroud)