0

刚接触rails,如果答案很明显,请道歉。如果我有 2 个模型,一个用户和评论,一个 (1 : N) 关系。当我创建用户时,我也在创建评论。

我遇到的麻烦是如何编写表单,或者评论将与用户关联是用户类所固有的吗?

  <%= form_for(@user) do |f| %>
    <%= f.text_field :name %>
    <%= f.text_area :comment ???? %>
    <%= f.submit %>
  <% end %>  
4

2 回答 2

1

我想你有一个评论模型,所以......

在 user.rb 中添加这个

has_many :comments
accepts_nested_attributes_for :comments

在你的控制器中?

def new
  @user = User.new
  @user.comments.build
end

在您的表单视图中:

<%= form_for @user do |f| %>
  <%= f.text_field :name %>
  <%= f.fields_for :comments do |comment_form| %>
    <%= comment_form.text_field :description %>
  <% end %>
<% end %>
于 2013-05-15T00:19:45.337 回答
0

假设您的用户表单是正确的,您只需在用户模型中添加注释作为属性。为此,您不需要单独的评论模型。

# schema

create_table "posts", :force => true do |t|
t.string   "name"
t.text     "comment"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false

您可以创建迁移以将评论属性添加到您的用户模型

rails g migration add_comment_to_user comment:text

如果这就是您所需要的,您可以删除 Comment 模型

然后你可以使用你拥有的表格

<%= form_for(@user) do |f| %>
  <%= f.text_field :name %>
  <%= f.text_area :comment %>
  <%= f.submit %>
<% end %>

您可能还想在表单中添加一些标签

<%= form_for(@user) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  <%= f.label :comment %>
  <%= f.text_area :comment %>
  <%= f.submit %>
<% end %>

希望这能让你走上正确的轨道

于 2013-05-15T00:17:16.943 回答