Ruby If语句
我正在试着写一篇博文并运行一些if语句。我想做的是:Ruby If语句,ruby,if-statement,Ruby,If Statement,我正在试着写一篇博文并运行一些if语句。我想做的是: 检查所有字段是否已填写 如果所有字段都已填写,请转至下一步,否则请重新加载页面 检查数据库中是否已存在 如果数据库中尚未添加,则添加 我认为我的if陈述不正确。即使所有“我的”字段都没有填写,它也可以工作如果检查字段的条件为空,请尝试,如下所示- unless [title, year, gross, poster, trailer].any?(&:blank?) 这将检查任何字段不应为nil或空白(“”) 如果检查字段的条件为空
我认为我的if陈述不正确。即使所有“我的”字段都没有填写,它也可以工作如果检查字段的条件为空,请尝试
,如下所示-
unless [title, year, gross, poster, trailer].any?(&:blank?)
这将检查任何字段不应为nil
或空白(“”
) 如果检查字段的条件为空,请尝试,如下所示-
unless [title, year, gross, poster, trailer].any?(&:blank?)
这将检查任何字段不应为nil
或空白(“”
) 如果检查字段的条件为空,请尝试,如下所示-
unless [title, year, gross, poster, trailer].any?(&:blank?)
这将检查任何字段不应为nil
或空白(“”
) 如果检查字段的条件为空,请尝试,如下所示-
unless [title, year, gross, poster, trailer].any?(&:blank?)
这将检查任何字段不应为nil
或空白(“”
) 即使在HTML字段中不键入任何内容,它们仍将作为空字符串提交
您可以通过以下方式避免使用空参数:例如,过滤空参数:
post '/movies/new' do
params.reject! { |key, value| value.empty? }
# rest of your code
end
此外,我更愿意发布到/movies
而不是/movies/new
,这更符合静态信息。即使在HTML字段中键入任何内容,它们仍将作为空字符串提交
您可以通过以下方式避免使用空参数:例如,过滤空参数:
post '/movies/new' do
params.reject! { |key, value| value.empty? }
# rest of your code
end
此外,我更愿意发布到/movies
而不是/movies/new
,这更符合静态信息。即使在HTML字段中键入任何内容,它们仍将作为空字符串提交
您可以通过以下方式避免使用空参数:例如,过滤空参数:
post '/movies/new' do
params.reject! { |key, value| value.empty? }
# rest of your code
end
此外,我更愿意发布到/movies
而不是/movies/new
,这更符合静态信息。即使在HTML字段中键入任何内容,它们仍将作为空字符串提交
您可以通过以下方式避免使用空参数:例如,过滤空参数:
post '/movies/new' do
params.reject! { |key, value| value.empty? }
# rest of your code
end
另外,我更愿意发布到/movies
而不是/movies/new
,这更符合休息时间。您的代码在一种方法中做了大量工作。我建议将其重组为更小的块,以便于管理。我主要是为Rails编写代码,因此,如果其中的一部分不适用于您的框架,我深表歉意
post "/movies/new" do
movie = find_movie || create_movie
if movie
redirect "/movies/#{movie.id}"
else
erb :'movies/new'
end
end
def find_movie
# guard condition to ensure that the required parameters are there
required_params = [:title, :year, :gross]
return nil unless params_present?(required_params)
Movie.find_by(params_from_keys(required_params))
end
def create_movie
required_params = [:title, :year, :gross, :poster, :trailer]
return nil unless params_present?(required_params)
movie = Movie.new(params_from_keys(required_params))
movie.save ? movie : nil # only return the movie if it is successfully saved
end
# utility method to check whether all provided params are present
def params_present?(keys)
keys.each {|key| return false if params[key].blank? }
true
end
# utility method to convert params into the hash format required to create / find a record
def params_from_keys(keys)
paras = {}
keys.each { |key| paras.merge!(key: params[key]) }
paras
end
您的代码在一个方法中做了大量工作。我建议将其重组为更小的块,以便于管理。我主要是为Rails编写代码,因此,如果其中的一部分不适用于您的框架,我深表歉意
post "/movies/new" do
movie = find_movie || create_movie
if movie
redirect "/movies/#{movie.id}"
else
erb :'movies/new'
end
end
def find_movie
# guard condition to ensure that the required parameters are there
required_params = [:title, :year, :gross]
return nil unless params_present?(required_params)
Movie.find_by(params_from_keys(required_params))
end
def create_movie
required_params = [:title, :year, :gross, :poster, :trailer]
return nil unless params_present?(required_params)
movie = Movie.new(params_from_keys(required_params))
movie.save ? movie : nil # only return the movie if it is successfully saved
end
# utility method to check whether all provided params are present
def params_present?(keys)
keys.each {|key| return false if params[key].blank? }
true
end
# utility method to convert params into the hash format required to create / find a record
def params_from_keys(keys)
paras = {}
keys.each { |key| paras.merge!(key: params[key]) }
paras
end
您的代码在一个方法中做了大量工作。我建议将其重组为更小的块,以便于管理。我主要是为Rails编写代码,因此,如果其中的一部分不适用于您的框架,我深表歉意
post "/movies/new" do
movie = find_movie || create_movie
if movie
redirect "/movies/#{movie.id}"
else
erb :'movies/new'
end
end
def find_movie
# guard condition to ensure that the required parameters are there
required_params = [:title, :year, :gross]
return nil unless params_present?(required_params)
Movie.find_by(params_from_keys(required_params))
end
def create_movie
required_params = [:title, :year, :gross, :poster, :trailer]
return nil unless params_present?(required_params)
movie = Movie.new(params_from_keys(required_params))
movie.save ? movie : nil # only return the movie if it is successfully saved
end
# utility method to check whether all provided params are present
def params_present?(keys)
keys.each {|key| return false if params[key].blank? }
true
end
# utility method to convert params into the hash format required to create / find a record
def params_from_keys(keys)
paras = {}
keys.each { |key| paras.merge!(key: params[key]) }
paras
end
您的代码在一个方法中做了大量工作。我建议将其重组为更小的块,以便于管理。我主要是为Rails编写代码,因此,如果其中的一部分不适用于您的框架,我深表歉意
post "/movies/new" do
movie = find_movie || create_movie
if movie
redirect "/movies/#{movie.id}"
else
erb :'movies/new'
end
end
def find_movie
# guard condition to ensure that the required parameters are there
required_params = [:title, :year, :gross]
return nil unless params_present?(required_params)
Movie.find_by(params_from_keys(required_params))
end
def create_movie
required_params = [:title, :year, :gross, :poster, :trailer]
return nil unless params_present?(required_params)
movie = Movie.new(params_from_keys(required_params))
movie.save ? movie : nil # only return the movie if it is successfully saved
end
# utility method to check whether all provided params are present
def params_present?(keys)
keys.each {|key| return false if params[key].blank? }
true
end
# utility method to convert params into the hash format required to create / find a record
def params_from_keys(keys)
paras = {}
keys.each { |key| paras.merge!(key: params[key]) }
paras
end
你的问题是什么?我认为我的if陈述不正确。即使我的所有字段都没有填写,它也能工作。信息太少,无法回答您的问题。请尝试测试title
、year
等中的确切内容。请记住,ruby会将除nil
和false
之外的任何内容流为true,甚至是空字符串或0。好的,谢谢,我会调查的你的问题是什么?我不认为我的说法是正确的。即使我的所有字段都没有填写,它也能工作。信息太少,无法回答您的问题。请尝试测试title
、year
等中的确切内容。请记住,ruby会将除nil
和false
之外的任何内容流为true,甚至是空字符串或0。好的,谢谢,我会调查的你的问题是什么?我不认为我的说法是正确的。即使我的所有字段都没有填写,它也能工作。信息太少,无法回答您的问题。请尝试测试title
、year
等中的确切内容。请记住,ruby会将除nil
和false
之外的任何内容流为true,甚至是空字符串或0。好的,谢谢,我会调查的你的问题是什么?我不认为我的说法是正确的。即使我的所有字段都没有填写,它也能工作。信息太少,无法回答您的问题。请尝试测试title
、year
等中的确切内容。请记住,ruby会将除nil
和false
之外的任何内容流为true,甚至是空字符串或0。好的,谢谢,我会研究它