gpt4 book ai didi

ruby-on-rails - 在 Rails 中使用模态创建和编辑对象

转载 作者:行者123 更新时间:2023-12-03 17:55:54 27 4
gpt4 key购买 nike

我一直在尝试使用 Rails 中索引 html 中的模态视图创建和编辑对象。我在项目中使用 twitter bootstrap。到目前为止,我成功地使用模态创建对象。
为了让事情正常工作,我必须在我的索引操作中创建一个名为 @post = Post.new 的对象。

由于在显示编辑模式之前,编辑对象必须准备好为@post = Post.find(params[:id]),但它发生在编辑操作中。

他们是一种我可以在显示之前为我的编辑模态视图初始化@post的方法吗?

这是我的代码:

index.html.erb

<div class="page-header">
<h1>Posts</h1>
</div>


<% @posts do |post| %>
<tr>
<td><%= post.name %></td>
<td><%= post.description %></td>

<td><%= link_to 'Edit', edit_post_path(post), :class => 'btn btn-mini btn-min-standard-width', :data => {:toggle => "modal", :target => "#editItemModal"} , :remote => true %>
<%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete, :class => 'btn btn-mini btn-danger btn-min-standard-width' %></td>
</tr>
<% end %>


<%= link_to 'New Item', new_post_path,
:class => 'btn btn-primary btn-standard-width' , :data => {:toggle => "modal", :target => "#newItemModal"} , :remote => true %>





<div id="newItemModal" class="modal hide fade" >
<button type="button" class="close" data-dismiss="modal">×</button></h1>
<div class="page-header">
<h1>New item </h1>
</div>

<%= render :partial => 'form' %>
</div>


<div id="editItemModal" class="modal hide fade" >
<button type="button" class="close" data-dismiss="modal">×</button></h1>
<div class="page-header">
<h1>Edit item </h1>
</div>

<%= render :partial => 'form' %>
</div>

_form.html.erb
<%if @post%>

<%= form_for(@post, :html => { :class => 'form-horizontal', :remote => true } ) do |f| %>


<div class="control-group">
<%= f.label :name, :class => 'control-label' %>
<div class="controls">
<%= f.text_field :name %>
</div>
</div>
<div class="control-group">
<%= f.label :description, :class => 'control-label' %>
<div class="controls">
<%= f.text_area :description %>
</div>
</div>


<div class="form-actions">
<%= f.submit nil, :class => 'btn btn-primary' %>
</div>


<% end %>
<% end %>

后 Controller
class PostsController < ApplicationController

def index
@post = Post.new
@posts = Post.all

respond_to do |format|
format.html # index.html.erb
format.json { render json: @posts }
end
end

def show
@post = Post.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.json { render json: @post }
end
end

def new
@post = Post.new
end

def edit
@post = Post.find(params[:id])
respond_to do |format|
format.html
format.json { render json: @post }
end
end

…………

最佳答案

只要我了解您想在编辑模态视图中使用实例变量@post。

在不知道您的代码库的情况下,我能说什么:

  • 在渲染编辑模态视图的 Controller 中找到对应的action,如果没有就创建一个
  • 使用 id 找到的模型 Post 初始化 @post,只需将其复制并粘贴到正确的操作中
  • 在 View 范围内调用

  • 希望这能回答你的问题

    关于ruby-on-rails - 在 Rails 中使用模态创建和编辑对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11606855/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com