2011-11-07 63 views
2

第一:我保证我已经通过每一个岗位关于该主题的阅读,搜索整个网络,但还是不知道......的form_for嵌套资源不提交请求后

我有以模拟Trip(has_many)和Accomodation(belongs_to)。 住宿地嵌套在一个行程:

resources :trips do 
    resources :routes, :accomodations 
end 

控制器看起来像这样:

def new 
    @accomodation = Accomodation.new 
end 

def create 
    @accomodation = Accomodation.new(params[:accomodation]) 
    if @accomodation.save 
    flash[:success] = "Accomodation created!" 
    redirect_to new_trip_accomodation_path(@trip) 
    else 
    render 'pages/home' 
    end 
end 

形式:

<%= form_for([@trip, @accomodation]) do |f| %> 
    <%= render 'shared/error_messages', :object => f.object %> 
    <div class="field"> 
      <%= f.label :title, "Titel" %> 
      <%= f.text_field :title %> 
    </div> 
    <div class="field"> 
    <%= f.label :description, "Beschreibung" %> 
    <%= f.text_field :description %> 
    </div> 

    <div class="actions"> 
     <%= f.submit "Create" %> 
    </div> 
<% end %> 

的形式呈现正确的HTML(只要我能见):

<form accept-charset="UTF-8" action="/trips/51/accomodations" class="new_accomodation" id="new_accomodation" method="post"> 

好的,所以当我提交表单时,没有任何反应。 当我查看服务器日志时,可以看到呈现新窗体的获取请求。但对提交没有反应... 表单是否完全不提交?为什么?我完全不知道。

我还试过了什么?

<%= form_for([@trip, @accomodation], :url => { :action => :create }, :method => :post) do |f| %> 

没有。

<%= form_for([@trip, @accomodation], :url => { :action => :create }, :method => :post) do |f| %> 

没什么。

<%= form_for([@trip, @accomodation, @trip.accomodations.new]) do |f| %> 

忘掉它吧。

任何人都可以帮忙。任何线索,我可以开始diggin?

在此先感谢!

回答

0

如果此请求没有服务器日志,则表示浏览器不会触发提交操作。你有一些JavaScript可能会干扰提交行为?尝试删除标题中的所有JavaScript包含并再次测试。 希望它有帮助。

0

你肯定

<form accept-charset="UTF-8" action="/trips/51/accomodations" class="new_accomodation" id="new_accomodation" method="post"> 

后,该行不

</form>