招聘网 层级网址的生成 10.4

自己的思路

看到教程的提示 "上传简历的网址应该长成这样:/jobs/1/resumes/new"

而且提醒去参考一下Rails101的做法, 然后看到routes的设定时


这样的设定就能变成


第二层是jobs里面的项, 就是具体到 "job" 而不是 "jobs" 的页面设定...那么在 "job" 层面设计一个 spacename 叫 resumes就可以咧? 这样是具体去哪里设定呢...


哦, 不是让我去参考这么前面的教程, 估计是要参考rails101的 6-2 之后的教程内容...发现post是在groups旗下的group每项里面进行posts的 (注意单复数哦, 能看出是"单项元素"还是"元素组合" 区别很重要!)

要借用posts的网址生成智慧!!!



自己动手玩一下

开个新branch去玩看看, 这样再对比教程学的主动些, 印象会更深. 


错误记录

第一个错误

建立了resume的model后直接想去建resume的controller了. 忘记了要rake db:migrate, 还忘记了要建立jobs users 还有 resumes的三边关系...不建立的话, 鬼知道resume跟其他表格如何互相关联啊喂!!!

第二个报错

写了resume的new view代码后报错, 我觉得是是因为参考job的controller代码写完resume controller的代码有问题.


这里是找不到resumes_path的意思? 估计resume controller里定义出问题了. 它是job旗下层级的逻辑, 所以resume的controller不能那样写...全部要先找到"job"后才能进行resume的这层级指令. 想跳过"先找到job层级"这步直接去resume层级是无法实现的, 所以改成


有趣的区别是 

1. 找job时 params里是job_id

2.还为了后期打算 加入 resume.user = current_user

3. 跳转页面的redirect_to job_path(@job)这里也有个@...啊...到底啥时候要加它啊!


嗯, controller的确有问题, 但是改正后, 依旧报错...


所以推测是view的代码有问题, 要跑去参考教材改. 我自己瞎写的如图

改成


改了好多细节, 自己多看看, 这样一改就完成debug啦~

原来报错里面指出的问题真的是这行有问题, 指讲@resume是不够的...要 [@job,@resume] 果然还是因为我乱跳层级, 越过job层级是不对的!!!





遇到问题

问题一 "resume上传PDF"的栏位是否要添加?

一动手就发现一个问题, 添加resume的model时, 是有content栏位, 但需要有"上传resume"的栏位吗?...应该要有, 这样后期能计算上传数量, 但是"上传resume"是什么格式呢? 不是string 不是integer 也不是text...

唯一想到的是, 先只放一个content:text的栏位吧, 反正如果有需要可以后面用migration加栏位上去. 


参考post的代码后, 觉得要能跟job关联起来, 而且后来还需要算共有多少份提交简历. 所以应该不止有content栏位, 还要有 job_id 以及 user_id 这两个栏位才对.嗯! 注意 resume_id不用加, 因为model创建的时候, 自动就有啊! 



问题二 创建model的时候, 是"单数"还是"复数"呀? 

比如代码是 model job/resume 还是 model jobs/resumes?...Orz 这个单复数的理论要怎么理解呀. 



问题三 接着要写的routes单复数 

遇到问题是不知道namespace 后接 "resumes"还是"resume". 这里的单复数应该只是看网址要求写的吧? 要求是"/jobs/1/resumes/new"的样式, 所以是复数? 



那么namespace下的resources后面到底是jobs还是resume是啊...



问题四 resume controller里面需要def index吗? 

估计要看需求吧, 如果其他users也能看到全部resume提交情况没有必要的话,就不需要def index. 那显示个提交的title呢? 或者数量呢?

那如果一开始没有def index的话, 需要def show吗? 这show好像不是专门显示index的全部列表的情况, 点击到每个resume也能看到单独页面或者就算是new页面的显示都需要def show吧?



问题五 View里面的代码要具体指向谁


尝试写job show页面里面可以"点击上传简历"的链接. 然后开始困惑, 这里是 "resume" 还是 "job". 应该是 resume吧...等下跑跑看.





解答遇到的问题 汇总


问题一的答案

我自己尝试写代码后,觉得要添加这个栏位啊, 不然后面写resume的controller时, 定义resume_params的部分, 必然要添加"上传resume"的参数的. 不能只permit.(:content) 这仅仅content一个参数而已吧

结果教程直接打脸, 的确只是定义了三个栏位, "job_id" "user_id" "content" 并没有"上传PDF格式简历"这个栏位...妈呀...


问题二的答案

嗯, 是"单数"的...复数会报错的哦! 然后我还写错了, 不用在自己新建的一个jobs文档旗下建resume的model, (rails g model jobs/resumes XXX 这样写就有这样的效果...) 而是直接建resume的model即可(rails g model resume XXX) 大概是因为model是数据表格, 而且项目已创建了jobs父文档了, 这resume跟之前的job,user等等数据表格都平等的感觉?


问题三的答案

不是我那样写, 而是直接在已有的resources :jobs下面添加resources :resumes就好...我一开始写的是


其实不用namespace来写...直接在resources :jobs下面加第二层就好了. namespace估计是"平行世界"的意思, 这里的resume跟jobs是"同一世界", 不用建立一个"类似却有微妙不同的平行世界"


问题四的答案

结果尝试了一下, 不写def show只是def new, new的页面在view写完后, 可以呈现. 妈呀...原来只要写new/create edit/update 这两对组合就能正常使用. (后来发现, 教程并没有写edit/update这一组...)

而不用定义resume index的真正原因,不是所谓的"看需求"而是...因为它的index就在Job的show上定义啊!!! 全部的resume是要出现在job旗下的呀!!! 所以resume controller里不用定义index, 因为它的all是要去 job controller里面show定义下撸代码给定义的!!!! 妈呀!!!




问题五的答案

嗯, 那样的代码一跑, 立马报错


然后参考rails101教程, 发现前面要加一个 "@" 

而且指过去的对象是job 而不是我认为的resume...估计是因为要先找到job才能继续找resume...而resume的抓取指令已在前面的"new_job_resume_path"部分指定的很明确了...所以剩下只要告诉它要去job下找...

还把<p>给去掉, 因为不是段落吧...center也不知道怎么写...

还要注意, 按钮的代码是跟在最后的, 可以用class来实现...






大反转

玩到目前为止, 自己边瞎写边学习都挺顺利, 结果resume的new能呈现了, 但是...无法提交!!!


这个不能提交...是因为...没有在job的show action里面定义好要显示resume吗...尝试看看.把老的job show


给改成


嗯...结果还是不能提交...😂

啊...莫非...忘记改job show的view代码了, 不然怎么显示?(BTW 需要显示吗?!!)


嗯...失败了...还是不能提交...



啊...目前积累够多的磕磕碰碰, 能吐槽的点也够多了, 开始对比教程写吧. 别乱来啦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341