Rails에서 link_to를 이용하여 ajax 와 js.erb호출에 대해 질문드립니다.

조회수 1323회

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 %>
...
  • views/A/foo.html.erb 는 어디서 쓰이나요? render partial로 불러온 곳에서도 link_to remote:true는 잘동작해야하는데..; 송주연 2016.6.9 17:13
  • AController에서 호출하는 액션에 대한 erb입니다.. index역할을 하는 녀석인데 딱히 안되야할 이유를 모르겠어요;; 파츠군 2016.6.9 23:21
  • 혹시 Rails 어떤 버전을 사용중이신가요? 김현일 (Kevin Kim) 2016.6.10 00:05
  • 4.2.1 사용중입니다 파츠군 2016.6.10 00:07
  • 혹시 실제 파일명이 `A_controller.rb`, `B_controller.rb` 이와 같이, 대문자 알파벳 한 글자로 되있나요? 김현일 (Kevin Kim) 2016.6.10 00:14

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.