我有一个使用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;零
我错过了什么吗?
答案 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
感谢您的帮助!