【发布时间】:2009-09-30 20:15:41
【问题描述】:
我仍然对 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 %>
这一切都很好,并且神奇的是,人的 ID 在 person_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,所以请耐心等待:) 照片的东西如何在没有控制器或特殊东西的情况下工作,这有点神秘.
【问题讨论】:
标签: ruby-on-rails ajax