3
我想要一個共享的js響應(視圖),我從一堆控制器渲染。它住在app/views/shared/success.js.erb
。解決在Rails 3.2中的控制器的視圖路徑
這是我的控制器的大多數的標準響應,它修改了DOM中的某些內容。但是,這個內容對於呈現它的控制器來說是特別的。
問題是,我無法弄清楚如何從這個共享的js視圖解析特定控制器的視圖路徑。他是一個例子(包括一些命名空間中的控制器)
# app/controllers/users_controller.rb
class UsersController < ActionController::Base
def create
# do some stuff
render 'shared/success' # .js.erb
end
end
# app/controllers/settings/permissions_controller
class Settings::PermissionsController < ActionController::Base
def create
# do some stuff
render 'shared/success' # .js.erb
end
end
# app/views/users/success.html.erb
<p>Some View code that only relates to <strong>users</strong></p>
# app/views/settings/permissions/success.html.erb
<p>Some View code that only relates to <strong>permission settings</strong></p>
# app/views/shared/success.js.erb
var listItem = '<%= j render "#{insert resolved path to this particular controller instance}/success.html.erb" %>'
$(".list").append(listItem);
我想這樣做是因爲JS的響應總是相同的原因,它只是改變了內容。關於如何獲取當前控制器的默認視圖渲染路徑的任何想法?