Rails에서 link_to를 이용하여 ajax 와 js.erb호출에 대해 질문드립니다.
조회수 1822회
link_to와 remote: true를 이용하여 간단한 ajax 콜을 구현하고 있는데
같은 view폴더 내에서의 erb에서 link_to로 하는 ajax콜은 잘 호출이 되서 js.erb파일을 잘 불러오는데
render :partial로 불러온 erb내에서 link_to로 호출하는 ajax콜은 이상하게 계속 템플릿을 찾을 수 없다고 나옵니다.
그래서 서버 로그를 보니까 같은 view내에서의 link_to 콜은 processing as JS로 잘 호출이 되는데
템플릿을 찾을 수 없다고 하는 link_to 콜은 processing as HTML로 들어가서 계속 missing template으로 나오네요.
route가 꼬였나 싶어서 js.erb 대신 html.erb 파일을 만드니 이건 잘 불러오네요.
스택에서 몇가지 키워드로 검색을 해봤지만 검색을 잘 하질 못한건지 어떤 답변으로도 해결이 되질 않았습니다.
respond_to :js를 해당 컨트롤러에 넣어보라는 답변이 많았는데 그대로 해보니까 UnknownFormat 에러가 떠서 어떻게 해야할지 잘 모르겠습니다.
프로젝트 구조는 아래와 같습니다.
controllers/B_controller.rb
class BController < ApplicationController
def action
...
#respond_to :js #UnknownFormat 에러 발생
end
end
views/B/action.js.erb
...
views/A/foo.html.erb
... <%= render :partial => "/C/nav" %> ...
views/C/_nav.erb
... <% list.each do |item| %> <%= link_to 'Action', B_action_path(item), remote: true %> <% end %> ...
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
/views/B/action.js.erb
에서 디렉토리명을 대문자B
에서 소문자b
로 변경하시면 문제는 해결될거같습니다.To be
/views/b/action.js.erb
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력