gpt4 book ai didi

ruby-on-rails - form_for helper 中的路径不正确

转载 作者:行者123 更新时间:2023-12-03 06:21:09 25 4
gpt4 key购买 nike

我不知道如何在 form_for 中正确编写 url 路径来创建新对象。我尝试以不同的方式做到这一点,但没有运气。我想有某种特定形式的 url 可以包含对象的 id。 enter image description here

views/tasks/new.html

<%= form_for :task, url: [@task.user, @task] do |f| %>

<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>

<p>
<%= f.label :description %><br>
<%= f.text_area :description %>
</p>

<p>
<%= f.hidden_field :user_id, value: params[:user_id] %>
<%= f.submit %>
</p>

<% end %>

rake 动路线

enter image description here

controllers/tasks_controller.rb

class TasksController < ApplicationController
before_filter :authorize, only: [:edit, :new, :destroy]

def index
@tasks = Task.where(user_id: params[:user_id])
end

def show
@task = Task.find(params[:id])
redirect_to users_path
end

def edit
@task = Task.find(params[:id])
end

def new
@task = Task.new
end

def create
@task = Task.new(task_params)

if @task.save
redirect_to @task
else
render 'new'
end
end


def update
@task = Task.find(params[:id])

if @task.update(task_params)
redirect_to @task
else
render 'edit'
end
end

def destroy
@task = Task.find(params[:id])
@task.destroy
respond_to {|format| format.js }
end

private

def task_params
params.require(:task).permit(:title, :description)
end
end

views/tasks/index.html

<p align="right"><%= link_to 'Users', users_path %> <%= link_to 'Tasks', user_tasks_path %></p>
<h3>Tasks database</h3>
<table>
<% @tasks.each do |task| %>
<tr id="task_<%= task.id %>">
<td>
<b>Title:</b>
<i> <%= task.title %></i>
</td>

<td>
<b>Description: </b>
<i><%= task.description %></i>
</td>

<td>
<%= link_to 'Edit', edit_user_task_path(task.user, id: task.id) %>
</td>
<td>
<%= link_to 'Delete', user_task_path(task.user, id: task.id),
data: { confirm: 'Are you sure?' }, :method => :delete, remote: true %>
</td>
</tr>
<% end %>

<tr>
<td><%= link_to 'Create task', new_user_task_path %></td>
<td><%= link_to 'Back to Users', users_path %></td>
</tr>

</table>

有人可以帮忙吗?

最佳答案

您有用于任务用户nested_routes,因此像下面这样更改您的form_for应该可以解决您的问题

<%= form_for [current_user, @task] do |f| %>

关于ruby-on-rails - form_for helper 中的路径不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31504275/

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