Rails 5中可以通过使用表单嵌套(nested form)来实现从父模型的视图中编辑关联模型的属性。
首先,确保父模型(例如Post)与子模型(例如Comment)之间存在关联关系(has_many或belongs_to)。在父模型的控制器中,使用build方法创建一个新的子模型对象,将其关联到父模型上。
在父模型的视图中,可以使用fields_for方法创建一个表单嵌套,用于编辑关联模型的属性。具体步骤如下:
@post.comments.build
这将在创建或编辑帖子时,同时创建一个新的评论对象。
<%= form_for @post do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= f.fields_for :comments do |comment_fields| %>
<%= comment_fields.label :content %>
<%= comment_fields.text_area :content %>
<% end %>
<%= f.submit %>
<% end %>
这将创建一个嵌套的评论表单,可以在帖子表单中编辑评论的内容。
def post_params
params.require(:post).permit(:title, comments_attributes: [:id, :content])
end
这将允许参数中包含评论的content属性,以便能够接受和保存评论的内容。
通过以上步骤,你就可以在父模型的视图中编辑关联模型的属性了。当提交表单时,父模型和关联的子模型将同时被保存到数据库中。
推荐的腾讯云相关产品:云服务器CVM、对象存储COS、云数据库MySQL、弹性负载均衡CLB、私有网络VPC等。
更多关于Rails 5和相关技术的信息,你可以查看腾讯云文档中的以下链接:
领取专属 10元无门槛券
手把手带您无忧上云