我需要创建一些文字。我有一个创建动作:
def create
@text = Text.new(text_params)
if @text.save
redirect_to text_path(@text), notice: "Text successfully created"
else
render :new
end
end
和表格:
<%= form_for @text do |f| %>
<div class="form-group">
<label>Text name</label>
<%= f.text_field :name %>
</div>
<div class="form-group">
<label>Description</label>
<%= f.text_area :description%>
</div>
<div class="actions">
<%= f.submit "Save", class: "btn btn-primary" %>
</div>
<%end%>
我提交文字时需要有两个动作。第一个动作是创建一个文本。第二个是从文本单词中创建单词,并且应该列出单词。
创建单词时,如果不存在,我需要创建一个if
语句。
我现在遇到了如何拆分和创建每个单词的问题:
def create_words
@text.split(/\W+/)
@text.each do |splitted|
if splitted !== @words.name
splitted = @word
@word.save
redirect_to root_path
end
end
答案 0 :(得分:1)
最简单的方法是在after_create
回调中做你的话。
class Text < ApplicationRecord
after_create :create_words
private
def create_words
# do your thing here
end
end
create_words
将在成功创建文本时调用。