保华的Rails学习笔记

job与admin::job

job与admin::/job(admin/job)异同知识点提取:
1、它们共用了一个model,在执行rails g controller admin::jobs时,并没有为admin::jobs新增加一个model
2、二者的controller写法基本一样,只是在admin::job的controller中,update、create、destroy这三个action的转向写法不一样,redirect_to admin_jobs_path,它们在执行完后,都转向了admin/jobs/这个页面,而job是转向了jobs/这个页面。
3、在edit.html.erb与new.html.erb文件中,simple_form_for写法不一样。
admin/jobs的controller对应的view页面(edit.html.erb和new.html.erb),simple_form_for后边写的是[:admin,@job]

<%= simple_form_for [:admin,@job] do |f| %>
  <%= f.input :title %>
  <%= f.input :description %>
  <%= f.submit "Submit" %>
<% end %>

而在jobs的controller所对应的view页面(edit.html.erb,new.html.erb)中,关于simple_form_for是这样写的

<%= simple_form_for @job do |f| %>
  <%= f.input :title%>
  <%= f.input :description %>
  <%= f.submit "Submit" %>
<% end %>

4、它们对应的path地址不一样


5、route.rb中写法不同
job的path,只要写resources :jobs就可以
admin/job的path需要用到namespace,需要这样写

namespace :admin do
    resources :jobs
end