大家好!
我有一个调用的部分_more_contacts.js.coffee
文件app/views/contacts/
此部分通过 Ajax 调用呈现ContactsController
,并在视图中更新另一个部分 ( _more_contacts.html.erb
):
阿贾克斯调用:
<%= link_to "blah", more_contacts_path(@smthg) , method: :post, remote: true, id: "more_contacts", data: {last: raw(@id)} %>
控制器代码:
def more_contacts
@contacts = Contact.search(params)
respond_to do |format|
format.js { render partial: "more_contacts" }
end
end
JS部分代码:
$('#more_contacts_table').append('<%=j render partial: "more_contacts", formats: [:html] %>')
HTML 部分:
<% @contacts.each do |contact| %>
<tr>
<td><%= link_to contact.company, contact_path(contact.id) %></td>
<td><%= contact.email %></td>
</tr>
<% end %>
请注意,我挣扎了几个小时才发现它不应该有.erb
扩展名,即使它包含一些 ruby 代码......
无论如何,一切都在开发中运行良好,但我无法使其在生产中运行:(
我在我的config/environments/production.rb
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
config.assets.precompile += %w( contacts/more_contacts.js app/views/contacts/more_contacts.js )
config.assets.precompile << "contacts/_more_contacts.js"
config.assets.precompile << "#{Rails.root}/app/views/contacts/_more_contacts.js"
config.assets.precompile << "#{Rails.root}/app/views/contacts/_more_contacts.js.coffee"
config.assets.precompile << "#{Rails.root}/app/views/contacts/more_contacts.js"
config.assets.precompile << "#{Rails.root}/app/views/contacts/more_contacts.js.coffee"
但是当我运行我的 rake 任务来编译资产时,more_contacts.js 无处可寻(public/assets/manifest.yml
或public/assets/
)并且 Ajax 调用失败......
我被困在这里:(任何想法,有人吗?