20170430深圳Meetup

一、类似于淘宝网,可以连续选择多个商品筛选条件,这多个参数如何传递到后台,进行数据交互?

方案一:

def index
    // 给view提供多个参数
    @param1 = ... 
    @param2 = ...
end


// view可在跳转链接中按需要把参数传给下一次active,形成数据流闭环
view中路由XXXX_path(@param1,@param2)

缺点:各个相关路由都需要添加参数支持不方便,参数多时更不方便

二、save , save! 的疑问

函数添加感叹号会报出异常,在调试时有帮助,那么发布产品时要不要带!,若不带,难道需要源码中一个个去删除?这多麻烦

三、提交表单,model保存时失败,网页上的表单数据如何还原?

1. 对浏览器隐藏需要保密的event.id字段,以event.friendly_id代替显示

2. 自定义event网址时,填写提交表单的网址字段不合法,修改后再次提交报错

3. 原因分析:

@event.update(event_params)执行操作分两部分

  1. 以event_params更新@event变量
  2. @event变量保存到数据库表

在此案例中,第2步保存操作时,model效验失败,未保存到数据库中,但是@event值在第1步已经被改变

4. 解决方案:


Github

note:
对于任何可以导致报错的重要字段,都需要考虑保存失败时的数据复原问题。
如果有多个重要字段呢?圈内有标准处理方式吗?

event_back = @event, 在update前这样保存备份用于出错时还原行吗?

四、网站第三方沟通服务(弹窗形式)

daovoice

gem intercom-rails

原文地址:https://www.cnblogs.com/Jogging/p/20170430shen-zhenMeetup.html