Ajax partial不在我的rails应用程序中呈现。
我有一个Article
型号。我正在尝试使用Ajax添加新文章
请找到以下代码。
cart.html.erb
<div id="articles">
<%= render 'showarticles' %>
</div>
cart.js.erb
$('#articles').html('<%= escape_javascript(render('static_pages/showarticles')) %>');
$('.form-control').val('')
的routes.rb
match 'cart/:id', to: 'static_pages#cart', via: [:get, :post]
_showarticles.html.erb
<%= form_for @article, :remote => true do |f| %>
<%= f.text_area :name, :class => "form-control" %>
<% end %>
<% @art.each do |a| %>
<%= a.name %>
<% end %>
static_pages_controller.rb
def cart
@art = Article.all
@article = Article.new
respond_to do |format|
format.html
format.js
end
end
谢谢!
答案 0 :(得分:1)
我可以通过将此行添加到我的routes.rb
文件来修复此问题:
match 'cart', to: 'static_pages#cart', via: [:get, :post]
答案 1 :(得分:0)
确定,
所以这个
<%= form_for @article, :remote => true do |f| %>
<%= f.text_area :name, :class => "form-control" %>
<% end %>
<% @art.each do |a| %>
<%= a.name %>
<% end %>
将转到文章创建方法。这就是为什么你的cart.js.erb没有被调用的原因。设置网址<%= form_for @article, :url => url_for(:controller => 'static_pages, :action => 'cart', :id => @cart.id), :remote => true do |f| %>
或最好在文章控制器的创建操作中处理它