Ruby If语句

Ruby If语句,ruby,if-statement,Ruby,If Statement,我正在试着写一篇博文并运行一些if语句。我想做的是: 检查所有字段是否已填写 如果所有字段都已填写,请转至下一步,否则请重新加载页面 检查数据库中是否已存在 如果数据库中尚未添加,则添加 我认为我的if陈述不正确。即使所有“我的”字段都没有填写,它也可以工作如果检查字段的条件为空,请尝试,如下所示- unless [title, year, gross, poster, trailer].any?(&:blank?) 这将检查任何字段不应为nil或空白(“”) 如果检查字段的条件为空

我正在试着写一篇博文并运行一些if语句。我想做的是:

  • 检查所有字段是否已填写
  • 如果所有字段都已填写,请转至下一步,否则请重新加载页面
  • 检查数据库中是否已存在
  • 如果数据库中尚未添加,则添加

  • 我认为我的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。好的,谢谢,我会研究它