【发布时间】:2015-08-12 06:37:12
【问题描述】:
我的项目中有多个链接,例如:
_index.html.erb:
<%= link_to('New Project', new_project_path, :remote => true) if Project.create_authorized? %>
控制器:
def new
@project = Account.root_account.nil? ? Project.new : Account.root_account.projects.new
end
new.js.erb:
$("#right-panel").html("<%= escape_javascript(render(:partial => 'projects/form', :locals => {:project => @project}) ) -%>");
我的问题是,当我在链接上单击鼠标中键(我的意思是,我想打开一个新选项卡)时,它会引发错误:
模板丢失缺少模板项目/新,应用程序/新 使用 {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :arb]}。搜索:* “/home/raj/workspace/papayaheaderlabs.banana/app/views”* “/home/raj/.rvm/gems/ruby-2.0.0-p598@banana/gems/doorkeeper-2.2.1/app/views” *“/home/raj/.rvm/gems/ruby-2.0.0-p598@banana/bundler/gems/activeadmin-655e2be7a351/app/views” * "/home/raj/.rvm/gems/ruby-2.0.0-p598@banana/gems/kaminari-0.16.3/app/views"
请帮忙解决这个问题
【问题讨论】:
-
根据错误,正在发出的请求是
html格式,如错误:formats=>[:html]所示,因此它正在搜索new.html.erb文件。当您期待js请求时。尽管我认为您正确添加了remote: true,这应该与js请求一起使用。我建议请查看是否正在发出 ajax 请求。 -
检查无效的 html 或 js 错误也可能是值得的......
-
我相信您实际上是想复制当前选项卡并在复制的选项卡中执行相同的 js
new.js.erb对吧?问题在于鼠标中键单击可能是特定于浏览器的,用户始终可以通过配置或插件覆盖默认行为。所以你应该按照 S. Tulentsev 的建议创建一个new.html.erb。
标签: ruby-on-rails