我需要創建一些文本。我有一個創建行動:如何在控制器的一個動作中執行兩個動作
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
您應該在Text類中創建一個'after_create'回調。然後,'.split'文本並用'find_by_word'檢查數據庫中每個單詞的存在(或者Word的任何屬性用於該單詞)。該功能不屬於控制器。 –
非常感謝您的幫助!我做錯了.split,你可以建議我。我在上面放置了我的代碼 – neonamo
您正在分割,但是然後嘗試遍歷整個'@ text'值。嘗試使用'@ text.split(/ \ W + /)',每個都是|拆分| ...'還有,如果Word.where(value:splitted),你必須在Word中查找'splitted'。空?然後保存它。根據我所看到的,我不確定Word模型是否存在,如果不是,我建議您創建它。如果你不明白,我擔心你有更多的基本問題需要解決,特別是在Rails中創建模型關聯。 –