上篇 最後有看到在 Concern 内又 include ValidateParams
,觉得是不错的整理方式,所以抽出来另外写一篇,简单来说其实也是放在 concern folder 内,并另外的取个适合在做什麽的名字而已。并没有说这是制式的规范,比较像个概念,不管是要额外处理其他的项目,都可以用相同概念变化,同样放在 Concern 内。
app > controller > concerns > validate_params.rb
# frozen_string_literal: true
module ValidateParams
extend ActiveSupport::Concern
def render_404_if_user_id_invalid(user_id)
raise ActiveRecord::RecordNotFound if params[:user_id] || User.find(user_id)
end
# ...
end
另外,也有可能是在搜寻功能时,可能全形、半形导致後端搜寻无法出现对应的东西出来,其实也可以写个类似的东西来做转换,举例来说:
module HalfwidthFullwidthConverter
extend ActiveSupport::Concern
def convert_number_to_halfwidth(term)
return fullwidth_number_to_halfwidth(term) if term.match(/^[0-9]+$/)
term
end
def convert_character_to_halfwidth(term)
return fullwidth_character_to_halfwidth(term) if term.match(/^[a-zA-Z]+$/)
term
end
private
def fullwidth_number_to_halfwidth(term)
term.tr('0-9', '0-9')
end
def fullwidth_character_to_halfwidth(term)
term.tr("a-z", "a-z").tr("A-Z", "A-Z")
end
end
将下来,要需要的地方 include 近来就可以使用了
class UsersController < ApplicationController
include HalfwidthFullwidthConverter
def search
convert_character_to_halfwidth(params[:term])
#...
end
end
我最後选择了什麽主题 我後来用了第三种-Open API的方式 因为这样就不用自己想资料内容了~ 这...
在上一章Todolist with React (3),使用 React-redux 完成了渲染任...
大家好~ 今天来实作如何用 Google Calendar API 建立 Google Meet 会...
由於没有经验 所以我决定学习的顺序是 一开始多看把所有基础的影片都看一遍 在脑子里面建构一遍後 再动...
在本系列 JavaScript的重点复习完成後,就要进入笔者学习的最初衷:网页设计应用了。 前提 一...