收到此错误 .. 不确定为什么? /mountains 处的 NoMethodError 未定义方法“有效?”对于 "big":字符串
Getting this error .. not sure why? NoMethodError at /mountains undefined method `valid?' for "big":String
post '/mountains' do
@mountain = Mountain.find_or_create_by(
name: params[:name].strip,
content: params[:content].strip,
user_id: current_user.id
)
if @mountain.save && @mountain.name.valid?
redirect to "/mountains/#{@mountain.id}"
else
redirect to '/mountains/new'
end
end
ActiveRecord::Validations
的valid?
方法实例方法,但我猜你是在String上调用的。您想要删除 name
之类的 @mountain.valid?
valid?
是 ActiveRecord::Validations
提供的一种方法,它是在记录本身上调用的,但是你在 name
(a String
) return 来自 @mountain.name
。只需在调用 valid?
之前删除 name
if @mountain.save && @mountain.valid?
此外,save
在实际尝试将记录保存到数据库之前在内部调用 valid?
。而save
returnsfalse
时记录无效。这意味着代码中的 && @mountain.name.valid?
部分不需要,只需将其从行中完全删除:
if @mountain.save
post '/mountains' do
@mountain = Mountain.find_or_create_by(
name: params[:name].strip,
content: params[:content].strip,
user_id: current_user.id
)
if @mountain.save && @mountain.name.valid?
redirect to "/mountains/#{@mountain.id}"
else
redirect to '/mountains/new'
end
end
ActiveRecord::Validations
的valid?
方法实例方法,但我猜你是在String上调用的。您想要删除 name
之类的 @mountain.valid?
valid?
是 ActiveRecord::Validations
提供的一种方法,它是在记录本身上调用的,但是你在 name
(a String
) return 来自 @mountain.name
。只需在调用 valid?
name
if @mountain.save && @mountain.valid?
此外,save
在实际尝试将记录保存到数据库之前在内部调用 valid?
。而save
returnsfalse
时记录无效。这意味着代码中的 && @mountain.name.valid?
部分不需要,只需将其从行中完全删除:
if @mountain.save