2012-07-17 54 views
0

我试图在创建歌曲时使用嵌套表单为歌曲添加类别标签。表单工作正常,直到我添加了嵌套属性,现在提交按钮在你点击它时不会做任何事情(页面没有重新加载或者任何东西)。添加嵌套表单后,Rails Submit按钮不会执行任何操作

在我的模型中,一首歌虽然有分类,但有很多种类,反之亦然。

这里的形式:

<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 

预先感谢您的帮助!

+0

什么控制台日志?它不给你任何提示? – MurifoX 2012-07-17 15:04:52

+0

我试过通过萤火虫控制台看它,它没有发生,当我点击按钮...或你的意思是轨道控制台日志?不太确定如何做到这一点,因为我对这一切都有点新颖 – TangoKilo 2012-07-17 15:13:29

+0

检查表格的html。 '行动'和'方法'是否设置? – cdesrosiers 2012-07-17 15:18:03

回答

1

外部形式应该是一个nested_form_for,而不是内部部分,它应该是fields_for。
此外,你可能不应该命名他们两个f,以避免混淆(尽管我认为它不会阻止它工作)。

<div class="span10 offset1"> 
<%= nested_form_for(@song) do |f| %> 

    <%= f.label :title, "Title" %> 
    <%= f.text_field :title %> 

    <%= f.fields_for(@song.categorizations.build) do |catsf| %> 
    <%= catsf.label :category_id, "TAG" %> 
    <%= catsf.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 %> 

+0

谢谢你会给这个镜头! – TangoKilo 2012-07-17 16:14:37

相关问题