Rails形成select truncate value

时间:2017-11-23 06:31:44

标签: ruby-on-rails methods

我有一个使用select标签的rails表格如下:

<%= f.collection_select(:question_id, Question.all, :id, :content) %>

我的目标是缩短内容的长度,在表单的下拉列表中。所以,我添加了一个方法并将我的表单更改为:

<%= f.collection_select(:question_id, Question.all, :id, :truncated_content) %>

在我的问题模型中,我有:

def truncated_content
 self.content.truncate(140)
end

在我的控制台中,question.truncated_content的结果是 =&GT;零

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

内容领域肯定有一些东西,我在我的控制台中查看并能够获得一个值。我也可以使用sample_question.content.truncate(140)在我的控制台中获得结果

我还添加了pry gem,得到了相同的结果,值为Question.first.truncated_content。

我和uzaif的建议一起使用&#34; map&#34;在我的收藏中选择而不是Question.all。它创建了一个数组数组:id和:content不在映射数组中。它产生[[&#34; Lo ...&#34;,1]]

使用https://apidock.com/ruby/Enumerable/map我尝试了哈希合并并使用索引进行映射但没有成功。

来自http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-truncate 我复制并粘贴了截断示例。我模型中的方法现在如下:

def truncated_content
  truncate(self.content, length: 70)
end

感谢您的帮助!