我的目标是使用相同的控制器调用html.erb和js.erb文件,但它只调用我的html文件。
我的js未被调用。
controller / categories_controller.rb
Image::make(Input::file('artist_pic')->getRealPath())->resize(120,75);
查看/分类/ index.html.erb
def index
respond_to do |format|
format.html
format.js
end
@categories = Category.order('name ASC')
@category = params[:category]
end
views / categories / index.js.erb(问题在于此处,此文件未被调用)
<% @categories.each do |c| %>
<%= link_to c.name, show_category_path(category: c.id), :id => "btn-filter#{c.id}" %>
<% end %>
答案 0 :(得分:3)
控制器以请求要求的格式响应,因此,您的链接要求HTML而不是JS,因此控制器以.html.erb
响应。如果您添加了一个电话,请执行以下操作:
<%= link_to c.name, show_category_path(category: c.id), :id => "btn-filter#{c.id}", remote: true %>
您的请求将要求JS(因为remote: true
属性),控制器将以.js.erb
回复。
答案 1 :(得分:1)
You should add remote: true option
<% @categories.each do |c| %>
<%= link_to c.name, show_category_path(category: c.id),remote:true, :id => "btn-filter#{c.id}" %>
<% end %>
它会自动找到index.js.erb文件。
答案 2 :(得分:1)
只需将 remote:true 属性添加到link_to。