未定义的方法'split'在TextsController中创建NoMethodError#create

时间:2015-09-16 14:03:53

标签: ruby-on-rails ruby nomethoderror

我正在尝试构建一个简单的单词计数器,但我在这里得到一个no方法错误是我的代码任何帮助将不胜感激

控制器

lass TextsController < ApplicationController
 before_action :set_text, only: [:show, :edit, :update, :destroy]


def index
 @texts = Text.all
end

def show
end

def new
 @text = Text.new
end

def edit
end

def create
 @text = Text.new(text_params)
 @counter = text.split.size


end

查看

<%= form_for(@text) do |f| %>

<%= f.label :name %><br>
   <%= f.text_field :name %>

<div class="actions">
  <%= f.submit %>
</div>
   

2 个答案:

答案 0 :(得分:1)

split是一种可以在字符串上调用的方法。您正试图在Text对象上调用它。您可能打算在Text对象的成员上调用split。像这样:

@counter = text.some_member_of_text.split.size

答案 1 :(得分:0)

获得字符串后,为了使用拆分,您应该设置如下模式:

@counter = text.split(//).size

&#39;(//)&#39;会分开每个字母我认为它是你想要的。默认模式在您的案例中应用,因为您没有定义它,根据文档在空格之间进行分割:

http://apidock.com/ruby/String/split