정말 간단한 작업을 시도하는 사람이 올바른 주문을 제공 할 수 있습니까?임의의 belongs_to/중첩 된 상속 된 리소스 (Rails 3.1)를 사용하여 다형성 부분 렌더링
는 기본적으로 우리는 Biscuit
선택적 그래서 우리는 같은 경로를 싶습니다 User
에 중첩 된 :
/biscuits
/biscuits/1
/users/2/biscuits
/users/2/biscuits/3
등
우리는 목록을 렌더링 할 부분 biscuits/_index
를 호출 biscuits/index
같은 견해를 가지고있다. 나는 사용자의 프로필보기에서 users/edit
을이 같은 부분을 호출하고 싶습니다하지만있는 resource_url 도우미가 사용하는 나는 분명 해요 :
resources :users do
resources :biscuits
end
class BiscuitsController < InheritedResources::Base
belongs_to :user, optional: true
end
사용자/edit.html.haml :
= render 'biscuits/index', biscuits: @user.biscuits.all
비스킷/_index.html.haml : NoMethodError in Users#edit undefined method 'user_url' for #<UsersController>
와 /users/1/biscuits
에서 BiscuitsController
에서 호출
- biscuits.each do |biscuit|
%tr
%td= biscuit.title
%td= link_to image_tag(biscuit.file_url(:thumb,:large)), resource_url(biscuit)
%td
= link_to 'Show', resource_url(biscuit)
|
%td
= link_to 'Edit', edit_resource_url(biscuit)
이 부분 작품을 잘하지만 폭탄 UsersController
에서 전화 할 때 /users/1/edit
- resource_url
은 비스킷 컬렉션이 아닌 사용자를 말합니다.
현재 컨트롤러에 관계없이 리소스/컬렉션을 리소스 모음으로 강제로 설정할 수 있습니까?
이 작업을 수행하는 더 좋은 방법은 무엇입니까? 또한
, 경로가 /users/1/biscuits
를 통해 BiscuitsController
를 호출하면 우리가 UsersController#collection
및 #resource
에서, UsersController
이러한 방법이라고 무시라고? 또는 하나의 요청 당 하나의 Controller
만이 Rails에 의해 인스턴스화됩니까?
또한 레이크 routes'이/사용자 ', 중첩 된 경로를 보여줍니다'주의 트릭을 수행하는 경우/: user_id/biscuits/: id'하지만 선택하지 않은 중첩되지 않은'/ biscuits/: id'를 보여주지는 않습니다 - 예상되는 행동입니까, 아니면 문제가 있습니까? – tribalvibes