• 多半是 activesupport 没有安装

    gem install activesupport
    

    你的系统里应该是装了 Rails 的,在 Rails 中 active_support 是用 autoload 加载的, 自然没有在 $LOAD_PATH 里加入 Rails 相关的目录

    require 'rails'
    

    应该也会失败,所以 autoload 带进去的 active_support 豪华套餐也没有了。

    1. 编辑器全局搜索
    2. pry-rails, byebug 都可以打断点
    3. 具名路由主要就是产生一个用于你在页面上调用的 helper 方法,要调用的话你需要在 View 的上下文里才能执行,或者在 controller 中使用关键字 view_context 也可以执行到 helper 方法 rb view_context.xxx_xxx_path
    4. 真的只能多积累,上次写个测试 it 后面少写了个 do,调试了半天...
    5. 我的经验是,先跟着全做一次。然后再从开头一个个模块的每个细节都去调试、理解、运用。
  • 徐波上次还让员工给他发红包,100-500 自己选。最后发 500 的年终奖多了 5000。他根本不是为了降薪,他是喜欢时不时搞点这种,清理公司里他认为的 “叛徒”。结果就是,截图把发布这种公司内部消息的 “叛徒” 找出来,给约谈开除了...

  • 邮件发送这种耗时的工作,肯定是交给一个独立的服务去处理。他们说的 “立刻” 是指你把这个工作提交给 Sidekiq,是立刻提交给它,它一个个自己去完成。而不是 “立刻” 发一个邮件。这是流程变更上的 “立刻”,不是说你更新完,那边立刻就收到邮件。

  • 现在的问题是,没有像工业革命这种级别的技术更新来刺激需求和职业结构变化,更多的是存量竞争。黎明前的时间总是最冷的。但黎明什么时候来就不知道了...

  • 数据量不大就直接把 3 个表 join 在一起,需要哪个老师的,直接想办法取。我觉得你只要取出来了,就都有道理。只是写完想想有没有其他办法,哪种效率更高,哪种更合理。用什么方法,用 where 或者 scope 都不是重要的。

  • Controller 里定义实例变量,取 Model 的数据的值。然后在相应页面上调用这个实例变量。值显示上去了。 下一步就是把值变成表格,用 table 标签写好 html 把数据排进去就可以了。如果是生产 Excel 表格,用 roo 之类的插件就可以了。

    建议先去熟悉下 Rails Guide 和 MVC 框架哦

  • 卧槽,哔哩哔哩以前是用 Ruby 做的?相关话题下看到 15 年的招聘....现在它还在用 Ruby 么。

  • https://ruby-china.org/topics/39489 参考我之前发的,也是升级过程中发现这个问题。

    (enum_key_word)_before_type_cast
    

    用这个方式就能取到之前对应的 Int

  • 哈哈..国家实力真不是靠咱们这些小老百姓加班抗起来的。大家被迫加班,是大环境变差的 “果”,不是国家崛起的 “因”。加班越多,行业越内卷。最后就像印度,你得跟洗衣机比拼性价比搏上位了,看老板愿意买洗衣机,还是招比洗衣机更卖力的劳工。 加班 != 国家强大,也不会促使国家强大,只是行业内卷的一个现象而已。

  • 书籍出售 at 2020年04月12日

    我也卖了几本给多抓鱼...就是价格好便宜,而且有些老书,它查不出的条码不让卖...

  • PG::UndefinedColumn - ERROR: column admin_users.admin_user_id does not exist
    

    这里说的很明确了

  • 关系申明都是在 model 里的。可以先看看 Rails Guide,里边有很多值得参考的地方。

  • 讨人厌的后缀表达式 at 2020年03月27日

    简单的话还是喜欢用,毕竟少打 3 个字母: end

  • 具体可参考 Automated Deployment。链接过去是 404 了。

  • 补完了。。。从来对这类娱乐新闻不感兴趣。原文太长我来总结下吧:粉丝因 XXX 网站损害其爱豆人设有组织的举报,相关网站成功被 ban,引起另一波喜欢 XXX 内容的粉丝集体反噬。大家一起抵制那位爱豆,抵制相关代言厂商。最后各大厂商全部下架相关代言广告。

  • 现在 ICA 那边不是已经禁止了,各类签证也下不来了嘛,持续 2400 小时。

  • 确实吃灰么,我的 PS4 也吃灰大半年,连压方便面都嫌麻烦。无奈买的游戏都是数字版,卖了就觉得亏的不止 PS4 本身,就持续吃灰....唉!

  • 我之前学习 tutorial 的时候遇到问题不知道怎么解决,我就把那一章全部照着重写,一行行检查哪里不一样。如果想知道哪里写错了,那就改一行运行一下,直到找出哪一行有问题。

    因为 tutorial 里的代码我相信它是完全可以运行的。最后发现大多都是自己的一些拼写、文件名、文件引用的问题。

    另外在有代码参考的前提下,多复制粘贴,少自己敲。但不是无脑复制粘贴,而是理解它后直接粘贴从而避免拼写问题。

    你可以参考下...

  • 前面已经举过例子了

    你在 controller 中去 permit 了 params,

    params.require(:user).permit(:name, :email, :title, :password, :password_confirmation)
    

    这行代码的结果是一个 permit 后的 params。

    按我前面回复你的内容,你该想出 2 个可能的原因。

    思路一: 在 permit 后,params 本身并没有改变,所以页面上还是 permit 为 false

    这是一个可能的思路。是否正确,你需要去验证它!验证它,对于刚开始学习非常重要。

    思路二: 只要 permit 参数后,params 就会变为 permit 为 true。

    这也是一个可能的思路,你需要去验证它。

    这两个思路你都去验证后,你就会知道你的问题:为何调试信息总是显示 permitted: false 啊?的原因了。

  • 不存在 "影响网页的输出" 这个概念。这些值都是你在 controller 的 action 中去 permit、去赋值、去改变的。页面上你只是可以展示这些值(或不展示),展示与否都是不会影响它本身的值的。就像你在终端定义一个 a 变量,你 puts a 变量,对 a 变量有任何影响和改变吗?具体是否 permit、是否赋值、是否改变。都是你在这个 action 中决定的。你可以把页面渲染这个动作当作是这个 action 中代码执行完毕后的最后一个延伸。

  • 你是为了解决 A 问题,发现有 B 方案。你无法实现 B 方案,就去把 A 问题本身给干掉了。你这样做完全不对啊!

    路由定义的是 delete 方式,就是希望你用 delete 方式去命中它。你应该解决是的让 link_to 按钮发送一个 delete 请求,而不是把路由改成 get 请求。

  • 路由的作用就是映射,而映射的条件有 2 个。一个是 request method,一个是 url。

    你定义的路由是 delete 的 method。

    那么首先检查的是你在页面上的那个按钮生成的请求的 method 和 URL 是否是你期望的。检测方式就是点击后查看日志。清空屏幕,保证你这次即将点击生成的 log 没有其他干扰信息。

    例如这样

    Started GET "/xxx/xxx" for xxx at 2020-01-07 14:14:29 +0800
    

    排查错误就要从 log 里去分析。

    这里就说了 method 是 GET,URL 是 /xxx/xxx 然后再去你的路由里检查,是 method 没对,还是 url 没对。

    在你目前提供的信息里,至少很明显 method 没对。所以你要检查,为什么那个 link_to 你写了 method 是 delete,点击后它还是 get 请求,是拼写错误吗?还是其他什么原因,这是你需要去查询和解决的了。

  • a = {"abc" => 1}
    # 假设a是你那的参数
    
    # Case 1
    puts a.merge({"efg" => 2})
    
    # Case 2
    puts a
    

    你在 merge 一个 hash 时,就像你 user_params 方法里做的一样,不会改变本身 a 或者 params 的值。 所以你打到页面上的 params 始终是 false

    你可以尝试用 binding.pry 或者 debugger 在 controller 方法里打断点,你看你把一个 params 给 permit 后,再直接调用 params,看它 permit 的情况就知道为什么了。

  • 哇跟真的一样