前两天刚遇到过这个问题,哈哈。也是看了这个 issue 解决的。
#18 楼 @FrankFang 准确的说是因为 simple_form 独立写了套自己的 Form Builder,跟 Rails 自带的 form builder 不兼容。而大部分是熟悉 Rails 自带的这套的,所以基于自己掌握的东西去定制一个东西更容易吧。
既然说到这里了,推荐一个我写的 gem,已在生产环境中大量使用,一直想放出了,只是没来得及写文档。 链接地址
<%= default_form_for [:work, @company] do |f| %>
<%= f.text_field :name, label: 'Company Name' %>
<%= f.collection_select :country, @countries, :nation, :nation, { label: 'Country', prompt: 'Select Country' } %>
<%= f.select :company_type, options_for_select(Company.options_i18n(:company_type), @company.company_type), { label: 'Company Type', prompt: 'Company Type' } %>
<%= f.select :payment_method, options_for_select(Company.options_i18n(:payment_method), @company.payment_method), { label: 'Payment Method', prompt: 'Payment method' } %>
<%= f.fields_for :contacts do |cf| %>
<%= cf.email_field :email, label: 'Contact Email' %>
<% end %>
<%= f.text_area :comment, label: 'Comment' %>
<%= f.submit %>
<% end %>
我们代码里都很简洁,如果不用这个 gem,要实现图的效果,代码量至少要乘以 3
效果图:

最重要的,之前怎么写的 form_builder 和 text_filed 等,用了这个 gem 也就怎么写就行了,我的思路只是加上默认的参数。学习成本极低。
我还一直以为是 ngrok 的问题,我之前用 puma 是可以极低概率成功的,大概 5% 的概率能不会报错。
#2 楼 @darkbaby123 恩恩,不带 tag 是基于 object,带 tag 是基于 object。在基于 object 的 form 中插入一个不基于 object 的 field 在这个 pull request 也得以实现了。
~/.ssh/id_rsa.pub文件添加到服务器~/.ssh/authorized_keys
~/.ssh/config, 如果没有则新建这个文件,配置内容如下;Host 123.123.123.123 114.114.114.114
ForwardAgent yes
其中,Host 是你允许使用你本机 ssh 连接的服务器,如果有多个,用空格隔开
echo $SSH_AUTH_SOCK
ssh-add ~/.ssh/id_rsa # 临时, 在mac中, 重启之后就失效了
ssh-add -K ~/.ssh/id_rsa # 永久, for mac
ssh-add -l # 检测是否添加成功
ssh -T [email protected]
根据我的经验,你是这一步没做:远程服务器, test,这一步很坑。其他的 mina 的配置,楼上已经说了。
已在京东提交了缺货通知。
# 把这行放到init文件里
Time::DATE_FORMATS[:db2] = '%Y-%m-%d %H:%M:%S'
# 也可以覆盖默认的
Time::DATE_FORMATS[:default] = '%Y-%m-%d %H:%M:%S'
# 然后
created_at.to_s(:db2)
#或者
created_at.to_s
不论如何,这是促进 ruby 社区繁荣的好事儿。支持管理员置顶。
那还不如用 jQuery, https://ruby-china.org/topics/31383, 我之前也跟你有一样的想法。如果不用 json 映射 data,vue 的效力不大。ujs 本身也是一个很好的组件化思路。
我用 vue 想实现的是一个比较常见且简单的场景: index 页面的列表,新增数据,刷新;
我用 vue 的思路:1.create 方法调用后,递归组件增加内容;2. 直接把列表数据用 vue model-view 分离循环,然后 create 后返回列表数据。2 应该是更符合 vue 理念的。
我开这个帖子也是想看看大家的讨论,@nong的观点我很赞赏,我也喜欢这种讨论问题的态度。楼上那些我的需求用不上 vue,什么场景不同的,我也想说的是这样的答案意义不大,有心的话也可以谈谈我这个场景为啥不适合 vue。
我这样的场景,我用 vue 也未尝不可。只是我后来反思自己的这个技术选型,有些盲目追求新技术了。turbolinks + ujs 的理念已经足够领先了,而且非常简单,其实大部分单页应用都是可以这样来实现的。只是 ujs 跟 jQuery 搭配使用更合口。
有很多做 rails 的兄弟一上来就把 turbolinks 禁掉了,又怎么能体会其精妙之处呢。
#2 楼 @mizuhashi 感觉是略有点标题党,感谢你的介绍。
后面的会覆盖前面的
*= require bootstrap
*= require self
当前 css 文件里的样式表会覆盖 bootstrap 中定义的
mina 1.0 版本出了,算是一个很不错的重构。
// file: wxpay.js.erb
wx.ready(function() {
wx.chooseWXPay({
timestamp: "<%= @pay_order[:timeStamp] %>",
nonceStr: "<%= @pay_order[:nonceStr] %>",
package: "<%= @pay_order[:package] %>",
signType: "<%= @pay_order[:signType] %>",
paySign: "<%= @pay_order[:paySign] %>",
success: function(res) {
window.location.href = '<%= buy_orders_url %>';
},
error: function(e) {
alert(e)
}
});
});
微信官方推荐新 api chooseWXPay
看不出来很谦虚~ 他们问的是你的基本功,不是平时没用的东西。
因为你不会用,才不知道这些基本功和知识点的意义在哪。
如果这些基本功你掌握的话。
' s '.lstrip.rstrip, 因为他不知道有 strip;两年工作经验,连这些面试题都不能回答,我一般是会认为学习能力比较差的。没为难你。真的。
我觉得应该是这样,github 统计数据发现 99%(这个是瞎说的,大部分比例吧)的个人用户都是 7 美元的 plan,也不会消费更高的,而团队消费反而都很高。 那么干脆放宽私有限制,提升团队收费。 这样反而会增加个人用户付费的比例,转化了很多老喜欢放项目在私人项目的,转化了竞争对手的用户。
所以这招很高明。
深有同感,前段时间团队技术选型,力排众议选择了 vue + rails
大写的赞
这个应该是数据库层面处理的,不需要 rails 介入。不过在写查询的时候注意下,分表的键必须带在查询里。
这没啥,ruby-china 源码是 MIT 许可证开源的。
允许:商业使用;不强制开源;
只需要作者在代码里包含版权信息即可。
为了尝鲜,我已经 fork 到自己 github 两三个项目了。
我看了楼主的问题,觉得不算过分,不是单纯 google 可以 google 到的,是个仁者见仁智者见智的问题。但是管理员各有各的口味,在其位谋其政罢了。 4 年前我想学一门技术的时候,也是在 python 和 ruby 间犹豫不决,楼主问的这个问题,我当时至少在 google 上 google 了一个星期,也没得到一个满意的答案。后来是大名鼎鼎的闪总告诉我学 ruby(那个时候还不知道他这么牛逼),并给了我一本 rails 的电子书,我至今心里仍然特别感激他。
我们也应该对这位新人更开明一点。
@galenzx 学 ruby,你不会后悔。