【问题标题】:How do I change the form rendered by Rails?如何更改 Rails 呈现的表单?
【发布时间】:2012-12-11 19:38:13
【问题描述】:

我有两个类,用户和联系人。一个用户有很多联系人,一个联系人属于一个用户。在用户的显示视图中,我有:

<%= link_to 'Add Contact', :controller => "contacts", :action => "new", :user => @user.id %>

然后,在联系人的控制器中,在新操作下,我有:

@user = User.find(params[:user])
@contact = Contact.new  
@contact.user = @user

当新的联系表单呈现时,它的用户字段中已经有#<0x4c52940>

&lt;&gt;&lt;&gt;

标签: ruby-on-rails


【解决方案1】:

我相信您滥用了控制器的创建操作。本质上它的内容应该是这样的

def create
   @user = User.find(params[:user_id])
   contact = @user.contacts.build(params[:contact])
   if contact.save
     flash[:alert] = 'New contact is created'
     redirect_to contacts_path(contact)
   else
     flash.now[:error' = 'Error creating contract'
     render :action => :new
   end
end

所以 +1 上一个答案 - 向您展示控制器和新表单代码

【讨论】:

  • 我编辑了更多信息。这是你要找的吗?我是 Rails 新手,所以我真的只是使用为我生成的脚手架。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 2016-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多