tags = "Investor, Real Estate, property Management"
我期望的輸出是
tags = ["Investor", " Real Estate", " property Management"]
我創建一個驗證之前的方法來改變標籤串入數組中。我正在使用split來更改由逗號分隔的字符串。
但是,它不會將字符串永久更改爲數組,它只是將其顯示爲數組,但標記仍然是一個字符串。我需要分裂的東西!但我不相信存在。如何在驗證之前將字符串永久更改爲數組?我要像做
我的模型
class Blog::Post
include Mongoid::Document
include Mongoid::TagCollectible::Tagged
before_validation :downcase_tags, :make_array
validates_presence_of :body, :title, :summary
...
def make_array
if self.tags.present?
self.tags.split(",")
self.tags.save
end
end
我的格式如下:
...
<div class="field">
<%= f.label :tags %><br>
<%= text_field_tag 'blog_post[tags]' %>
</div>
<br \>
<div class="actions">
<%= f.submit("Submit", class: "btn btn-default btn-sm") %>
</div>
<% end %>
控制器
...
def create
@blog_post = Blog::Post.new(post_params)
@blog_post.date = Time.now
@blog_post.author = current_super_admin.name
@blog_post.save
respond_with(@blog_post)
end
但是,這看起來不正確的模型,因爲它不應該保存在模型中。我怎樣才能正確地做到這一點?
我這樣做是因爲我將標籤添加到博客帖子中,標籤是用逗號分隔的字符串,但我需要數組中的標籤來查詢它們。
請注意,拆分不會剝離空間 – Bohdan
你是否想做'str ='14'; str.replace(14)#=> TypeError:沒有將Fixnum隱式轉換爲String。您可以將任何類的實例替換爲同一類的另一個實例,但不能替換爲不同類的實例。當然,你可以寫'str = 14; str = 14'。 –