在项目创建时将父ID传递给remote_form部分

时间:2009-09-30 20:15:42

标签: ruby-on-rails ajax

我对rails中的控制器仍然有点模糊,特别是因为很多事情似乎在幕后神奇地发生,而且在这种情况下并没有发生。

所以说我有一个人模型,有很多照片(使用回形针),并有很多喜欢的报价。引号可以包含文本,属性作者等。在这两个模型中,它们都被设置为属于我的人模型。

在新的人员表单中,我在其他地方使用了一些代码来创建新照片:

<% form.fields_for :screenshots, :html => { :multipart => true }  do |screen_form| %>
    <%= render :partial => 'screenshot', :locals => { :form => screen_form } %>
<% end %>

部分原因非常简单,就像这样(减去我为嵌套模型添加的一些ajax javascript):

<%= form.label :photo, "Screenshot:" %>
<%= form.file_field :photo %>

这一切都很好,神奇地在Person_id创建时,人物的ID与截图相关联。我甚至没有屏幕截图的控制器,它仍然有效。

然而,它不适合我的报价。

<% remote_form_for :quote, :html => { :method => :put }, :url => {:controller => "quote", :action => "create", :person_id => @person.id}  do |quote_form| %>
<%= render :partial => 'quote', :locals => { :form => quote_form } %>
 <% end %>

这部分也非常简单。

  <%= form.label :quote_text %>
  <%= form.text_field :quote_text %>
    .........
 <%= form.submit 'Create' %>

我不确定我是否可以将人员ID放在那里,但它没有抱怨。然而,它也没有用。引号控制器非常简单。

  def create
    @quote = Quote.create(params[:quote])
  end

目前它被放入数据库但是person_id没有填充,因此我无法提取与特定人员相关的报价。很抱歉,如果这是一个愚蠢的问题,但我通过调整教程并将它们混合在一起来学习Rails,所以请耐心等待:)这只是一种神秘的照片事物如何与没有控制器或特殊的东西一起工作,这不是

1 个答案:

答案 0 :(得分:0)

第一种形式是人形,主要是与其相关的快照字段,所以查看你的HTML会发现像人[快照] [照片]这样的形式,这个表格将被提交给人物控制者。

将人员ID传递给第二个表单是使其工作的关键,但是它不起作用有点奇怪,表单将提交给引用控制器。你确定(看日志)params hash有person_id属性吗?