我想知道在这种情况下是否有办法解析 json 数组。我正在为标签文本字段进行自动完成,非常类似于堆栈溢出的标签文本字段。我想有一个与该特定标签相关联的计数。
在我的一个观点中,我有一个...
<div class="tags">
<%= f.label :tag_name, "Tags" %>
<%= f.text_field :tag_name, data: { autocomplete_source: tags_path} %>
</div>
这反过来又叫我的articles.js.coffee
jQuery ->
$('#article_tag_name').autocomplete
source: $('#article_tag_name').data('autocomplete-source')
在我的标签控制器中,我有...
def index
@tags = Tag.order(:name).where("name like ?", "%#{params[:term]}%")
render json: @tags.map{|tag| "#{tag.name} x #{tag.count}"}
end
该代码有效,我可以使用 ajax 从我的标签表中检索我的标签(及其计数)。
但是我也有这个代码,它在我的文章模型文件中
def tag_name=(name)
self.tag = Tag.find_or_create_by_name(name) if name.present?
end
如果标签不存在,它允许用户创建标签。我遇到的问题是……标签现在标记为“Java x 1”,如果用户选择该标签,数据库现在包含“Java x 1”作为自己的标签,而不仅仅是“Java” .
是否有单独的方法来解析 json 数组或让 jquery 分别处理名称和计数?
抱歉,我对所有这些 json 和 jquery 还是很陌生。我正在关注一个railscasts。非常感谢您的帮助=)