#15 楼 @quakewang
谢谢!想问一下,你是怎么找到这个方法的,我 find_by_friendly_id
只搜索到这个页面:
http://www.rubydoc.info/github/norman/friendly_id/FriendlyId/FinderMethods:find_by_friendly_id
结帖可以,但应该还可以回复,今天还有人 @ 我,目前老帖可以回帖但不会顶上来,我觉得是个好的设计。
#9 楼 @rei 你一直是论坛正能量,也愿意花时间帮助大家,先给你点个赞。
一般情况下不要改 view 和 route,Product.find(params[:id])
和 edit_product_url(@product)
之类的都不用改,我 #8 楼 说错了。
基于我对你的了解,你可能不太喜欢依赖过多的 Gem,但在这个问题上,用 to_param
和 定义一个方法不太适合我的情况,我的情况会更复杂。主帖的 user 只是一个例子而已。
比如说现在做一个产品的 CRUD,把产品名称而不是产品 id 放在 url,url 中可能还有除 id 之外的其它参数,产品名称可能涉及英文和字母外的特殊字符,有可能还会重名,可能还会因为 SEO 的原因改名 (要考虑改名后会有坏链),这时写一个复杂的 to_param
已经不能解决问题,应该添加一个 unique 的 slug
字段存储转换后的产品名称以及“历史名称” ,如果重名还要做一些处理。更麻烦的是不只是产品要这样处理,比如 用户,产地,厂商等 controller 都要这样处理。
如果只是 to_param
这个链接对此方法有更多说明:
https://gist.github.com/cdmwebs/1209732
文章最后也推荐用 friendly_id
gem,因为“历史名称”不是一两句话就可以搞定。
PS: 关于中文等特殊字符处理: http://waynechu.logdown.com/posts/205700-rails-web-site-no-longer-displays-only-id
#15 楼 @brenda103
亲,你的 assciation
拼错了,建议用 rubymine 吧,可以完全避免这类低级错误
#13 楼 @brenda103 我用的 simple_form gem,assciation 是在 simple_form 定义的,你有没有用这个?
#2 楼 @libuchao #3 楼 @chairy11 谢谢,这是个办法,但改动太大,用 friendly_id 可以不改任何原来的代码
#4 楼 @mimosa 这有更详细的说明: http://ruby-journal.com/how-to-override-default-primary-key-id-in-rails/ 不但改动大,而且处理 association 的时候会有问题
#5 楼 @xmonkeycn 谢谢,你一句话点醒梦中人,你的办法真是太太太棒了!!! 建议给 friendly_id 的 README.rdoc 发 pull request,他们根本没有说明这个问题,难道用这个 Gem 的人只是考虑漂亮和 SEO,没有考虑过隐藏主键的事?
楼主,您这不叫分享一个半成品,应该是做了个半成品就来做广告。
放出源代码才叫分享吧。
我是 Vanilla 都还没学好的民间全栈程序员,已经在选 js 的框架上晕过去了,最后决定还是用我的 JQuery 吧,智商余额不足了。
不影响理解的情况下,尽量减少代码量,代码越少越好维护
@huacnlee 看截图你是做出来了,何不后台加个开关,把代码发布, ruby-china 是很好的学习资料,这个树形对很多人有参考价值,请考虑,谢谢
第一,请贴代码,不要用截图,以便别人可以 copy 你的出错信息 第二,请用错误信息 google 一下,比论坛等别人回答要快得多,请相信一点,你几乎不太可能是第一个遇到这个问题的人。
希望搜索结果页面第一条 stackoverflow 的信息能帮到你: https://www.google.de/search?q=could+not+find+net+ssh+2.10.0+in+any+of+the+sources&oq=could+not+find+net+ssh+2.10.0+in+any+of+the+sources&aqs=chrome..69i57.279j0j7&sourceid=chrome&es_sm=93&ie=UTF-8
#4 楼 @blacktulip http://www.nicolasgarnil.me/blog/2013/handling-multiple-domains-routes-in-ruby-on-rails/
我就是用这个办法,一套程序好几个域名,一个域名在 controller 下对应一个目录,
每个网站都相似,但也有不同。
工资翻倍?你是不可替代的大牛吗?如果是,说明老板没领导能力,培养了一个心腹大患,如果不是,老板为什么不再多雇一个人?
就算你工资翻倍也不是大钱,你却失去了遇到妹子的机会,再过几年,说不定都不会跟妹子聊天了。妹子只是个例子,你将缺乏真正的生活。我进公司的时候,有个员工因为他女友去别的城市,所以他辞职要跟过去,他说工作是为了能活着,活着不是为了工作。你拿一份薪水也可以有生活,但你拿双份就只剩下工作了。
赚大钱的都不是拿工资的,既然拿工资就要想想怎么把生活玩出点花样,热爱生活的人总比工作狂活得滋润。你老板是赚大钱的,他爱拼命,因为拼出来是自己的,你大可不必为了几根胡萝卜下班了还转悠。
虽然说世界上有要加班的公司和不要加班的公司,但在中国的公司种类会有些奇怪。正常的加班的公司应该是流水线这类劳动密集型,”三班倒“这种。按欧美的情况,这类工作内容相同,工资要按时间不同。朝九晚五是正常工资,下班到 22 点是 1.5 倍工资,再晚就是双倍,周六 1.5 倍,周日双倍。当然,华为在欧洲的公司也带来了好传统,我有认识两个朋友都是做了几年就不呆了,除了上班可以说中文这个优势,其它的差不多都是劣势,”自愿加班“实在是不能忍啊。
#15 楼 @blacktulip 拉仇恨
老实说,你无法衡量你的“收入”。
程序员身体是本钱,如果透支严重,再多钱也买不回。 另外,下班时间应该谈恋爱,或陪老婆孩子,时间是不会回头的。
加班就算给钱能多到哪里去,”马无夜草不肥 人无横财不富“。
如果是自己的事,通宵都没感觉。 如果是打工仔,加班就是加班,不要跟“文化”扯上关系,其实就是老板想用更少的钱办更多的事。
我所在的软件公司,早上 8 点到 9 点之前来公司,下午 5 点到 5 点半走人,不打卡。
#4 楼 @lips 不是做着玩,想把现在某单一的系统做成托管的。就像 http://logdown.com/ 那种托管平台。不同的是,logdown 只是单用户建单 blog,我想做成多用户维护同一个 blog, blog 之间还要彼此隔离。
pg