Ruby on rails 从文本字段解析博客文章标记
首先,让我先说,我知道这个问题以前在这里被问过。但是,它没有得到回答,我不想提出一个僵尸线程从一年多以前 第二,我对使用插件不感兴趣,是的,我想重新发明轮子。我写这个博客是为了学习RoR 我试图在Rails应用程序中复制将标签附加到帖子的行为 posts表单如下所示Ruby on rails 从文本字段解析博客文章标记,ruby-on-rails,parsing,forms,ruby-on-rails-3,many-to-many,Ruby On Rails,Parsing,Forms,Ruby On Rails 3,Many To Many,首先,让我先说,我知道这个问题以前在这里被问过。但是,它没有得到回答,我不想提出一个僵尸线程从一年多以前 第二,我对使用插件不感兴趣,是的,我想重新发明轮子。我写这个博客是为了学习RoR 我试图在Rails应用程序中复制将标签附加到帖子的行为 posts表单如下所示 <%= form_for @post do |post_form| %> ... <%= render :partial => 'tags/form', :locals =>
<%= form_for @post do |post_form| %>
...
<%= render :partial => 'tags/form',
:locals => { :form => post_form } %>
...
<% end %>
...
“标签/表格”,
:locals=>{:form=>post_form}%>
...
标签的形式如下
<%= form.fields_for :tags do |tag_form| %>
<div class="field">
<%= tag_form.label :tags, 'Tags' %> <small>(comma separated)</small><br />
<%= tag_form.text_field :tags %>
</div>
<% end %>
(逗号分隔)
我遇到的问题是,“标签”不是我的Post类中的字段。我的Post和Tag模型与poststagsJoint之间有HABTM关系。因此,我需要解析标记文本字段(使用string.split(“,”),并将生成的标记字符串传递到我的控制器中,这样我的控制器就可以创建标记并将其与新的博客文章关联起来
我的视图设置正确吗?我的控制器应该是什么样子?Post.create
谢谢!我知道您对插件不感兴趣,但他们是这样处理的: 类
Post
具有方法tag_list=
,该方法从字符串中进行拆分(',)
,然后从HABTM关系中搜索并添加tag
s。您可以使用以下方法定义Post#tag_list=
:
def tag_list=(tags)
self.tags.clear # clears all the relations
tags.split(',').each do |tag|
self.tags << Tag.find_by_title(tag) # and assigns once again
end
end
因此,您现在可以使用
@post.tag\u list%>
谢谢。我将在post.create中的何处发布#tag\u list?以及如何从视图中获取用户输入的标记?将#tag\u list方法放在模型帖子中,并在表单中执行
。如果它没有在表单中分配值,请提供@post.tag list%>
选项。
def tag_list
self.tags.collect do |tag|
tag.name
end.join(',')
end