gpt4 book ai didi

ruby-on-rails - 未定义的方法 `length' 为 nil :NilClass

转载 作者:行者123 更新时间:2023-12-04 05:10:44 25 4
gpt4 key购买 nike

当我创建一个新用户并查看用户的个人资料时,我收到以下错误,我认为是因为用户尚未创建状态:

undefined method `length' for nil:NilClass

它来自 Status_form:
<%= form_for [@status], :url => user_status_path(current_user) do |f| %>
<div class="field">
<%= f.text_area :content, id:"status_box", maxlength:350, placeholder: "Say something." %>
</div>
<%= f.submit "Update", id:"status_btn", class: "btn btn-small btn-primary" %>

<span id="counter">Characters left: <%= 350 - @status.content.length %></span> #this is the source of the error

<script type="text/javascript">
$('#status_box').keyup(function () {
var left = 350 - $(this).val().length;
if (left < 0) {
left = 0;
}
$('#counter').text('Characters left: ' + left);
});
</script>
<% end %>

用户 Controller :
def new
@user = User.new
end

def create
@user = User.new(params[:user])
if @user.save
sign_in @user
redirect_to root_path
else
render 'new'
end
end

def show
@user = User.find(params[:id])
@status = @user.status || @user.build_status
end

最佳答案

这是因为您有默认值 nilcontent列。所以你不能打电话lengthnil .如果您想使用 lengthcontent您需要设置 default值为 empty string("")或者您可以使用 to_s先然后length

   <%= 350 - @status.content.to_s.length %>


   <%= 350 - (@status.content.try(:length) || 0) %>

关于ruby-on-rails - 未定义的方法 `length' 为 nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com