【发布时间】:2012-07-18 00:07:07
【问题描述】:
我目前正在尝试使用嵌套表单在您创建歌曲时向歌曲添加类别标签。在我向其中添加嵌套属性之前,该表单工作正常,现在提交按钮在您单击它时不执行任何操作(页面不重新加载或任何操作)。
在我的模型中,一首歌曲有很多分类,但反之亦然。
这是表格:
<div class="span10 offset1">
<%= form_for(@song) do |f| %>
<%= f.label :title, "Title" %>
<%= f.text_field :title %>
<%= nested_form_for(@song.categorizations.build) do |f| %>
<%= f.label :category_id, "TAG" %>
<%= f.select :category_id, options_for_select(Category.all.collect {|c| [ c.tag, c.id ] }, { :include_blank => true }), prompt: "" %>
<%end%>
<%= f.submit "Save song", class: "btn btn-large btn-primary" %>
<% end %>
</div>
还有我的歌曲控制器:
def new
@song = Song.new
end
def create
@song = Song.new(params[:song])
if @song.save
flash[:success] = "Song successfully added to library"
redirect_to @song
else
#FAIL!
render 'new'
end
end
分类控制器:
def new
@categorization = Categorization.new
end
def create
@song = Song.find(params[:id])
@categorization = Category.new(params[:categorization])
if @categorization.save
flash[:success] = "Tag added!"
redirect_to song_path(@song)
else
flash[:fail] = "TAG ERROR"
redirect_to edit_song_path(@song)
end
end
提前感谢您的帮助!
【问题讨论】:
-
控制台日志呢?它没有给你任何提示?
-
我已经尝试通过萤火虫控制台查看它,当我单击按钮时没有任何反应......或者你的意思是 Rails 控制台日志?不太确定该怎么做,因为我对这一切有点陌生
-
检查表单的 html。 'action' 和 'method' 设置了吗?
-
表单的 html 看起来像:
<form action="/songs"...method="post">所以是的,但是当它呈现嵌套表单时,它应该呈现两个单独的表单标签还是只呈现一个? -
@tjkoding 我的意思是 Rails 控制台日志。您可以通过查看您之前打开并输入
rails s的命令行界面来检查它。
标签: ruby-on-rails ruby-on-rails-3 nested-forms