Ruby on rails RubyonRails:在索引页上的new和edit表单上使用相同的实例变量

Ruby on rails RubyonRails:在索引页上的new和edit表单上使用相同的实例变量,ruby-on-rails,modal-dialog,simple-form,Ruby On Rails,Modal Dialog,Simple Form,在我的索引页上,我显示“任务”列表 我有一个按钮在顶部“添加一个任务”与模态部分使用简单的形式。这个很好用 在我的任务列表中,我为每个任务显示一个编辑和删除链接。Delete工作正常,但edit实际上不起作用,因为它使用了我在控制器中设置的@task=task.new。因此,“编辑”模式实际上是一种“新”模式 理想情况下,我希望@task在我的每个迭代器中等于“task” 我已经尝试了许多不同的方法来解决这个问题,主要是使用params: 我的编辑链接是: <% @tasks.ea

在我的索引页上,我显示“任务”列表

我有一个按钮在顶部“添加一个任务”与模态部分使用简单的形式。这个很好用

在我的任务列表中,我为每个任务显示一个编辑和删除链接。Delete工作正常,但edit实际上不起作用,因为它使用了我在控制器中设置的@task=task.new。因此,“编辑”模式实际上是一种“新”模式

理想情况下,我希望@task在我的每个迭代器中等于“task”

我已经尝试了许多不同的方法来解决这个问题,主要是使用params:

我的编辑链接是:

    <% @tasks.each do |task| %>
      ...
      <%= link_to 'Edit', "?task_id=#{task.id}", { 'data-toggle' => 'modal', 'data-target' => '#myModal' } %>
    <% end %>
然而,这也不起作用,@task似乎是一次性设置的,它永远不会进入params的状态

这行吗?rails中解决此类问题的最佳实践是什么


谢谢你的回答

您可以将任务id作为数据参数传递

看法


你能发布完整的控制器和视图吗?我想最好能更好地理解这个问题
    if params.has_key?(:task_id)
      @task = Task.find(params[:task_id].to_i)
    else
      @task = Task.new
    end
<%= link_to 'Edit', "", { 'data-task-id' => task.id, 'data-toggle' => 'modal', 'data-target' => '#myModal' } %>
if params.has_key?(:data-task-id)