Ruby on rails 从文本字段解析博客文章标记

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 =>

首先,让我先说,我知道这个问题以前在这里被问过。但是,它没有得到回答,我不想提出一个僵尸线程从一年多以前

第二,我对使用插件不感兴趣,是的,我想重新发明轮子。我写这个博客是为了学习RoR

我试图在Rails应用程序中复制将标签附加到帖子的行为

posts表单如下所示

<%= 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