0

私はこれまで何度も JavaScript パーシャルを追加してきましたが、しばらくの間ではありませんでした。要するに、私は愚かな何かを見逃しています。

このビューの最後に部分的な「deleteme.js」をレンダリングしようとすると:

/app/views/projects/myview.html.slim:

h2 Stuff goes here

render partial: '/projects/thisworks' # Render html partial

render partial: '/projects/deleteme.js' # Render js partial...fails

このパーシャルをレンダリングするもの:

/app/views/projects/_deleteme.js.erb:

console.log("Oh FFS, Work");

私は得る:

ActionView::MissingTemplate in Projects#show

5 行目が発生した /Users/aj/Web/Rails/sh3/app/views/projects/show.html.slim を表示:

{:locale=>[:en]、:formats=>[:html]、:handlers=>[:erb、:builder、:slim、:jbuilder、:coffee、:haml]} で部分的な /projects/deleteme が欠落している. 検索場所: * ...

不利な点は、formats => [:html] のみを検索していることですが、.js を追加すると、Rails に javascript を検索するように自動的に指示すると思いました。なぜJSテンプレートが見つからないのかについて誰かが何か考えを持っているなら、私は本当に感謝しています. アクション コードは非常に基本的なものです。

def show
  @project = Project.find(params[:id])
end
4

2 に答える 2

1
 /app/views/projects/_deleteme.js.erb:

Javascript アクションの命名と部分的な命名が絡み合っています!

 /app/views/projects/deleteme.js.erb:

JavaScript ファイルの名前を変更し、_ を削除します

ショーがjsに応答することを確認する必要があります

def show
  respond_to do |format|
    format.js
    format.html
  end
end
于 2013-01-29T02:00:24.097 に答える
0

スリムなテンプレート内でパーシャルを呼び出しているので、

app/views/projects/_deleteme.js.slim
于 2013-01-29T02:07:15.547 に答える