【问题标题】:Associations, create a task for a project from project index view关联,从项目索引视图为项目创建任务
【发布时间】:2012-06-25 14:58:39
【问题描述】:

我在项目和任务之间建立了关联。

一个项目有_很多任务,一个任务属于_一个项目。

我的模型运行良好。我可以从项目等创建任务。

当我想在项目索引视图上添加一个按钮以将任务添加到 项目。

我想要的是这样的东西

(项目索引视图)

项目 1 显示、编辑、销毁、添加任务

项目 2 显示、编辑、销毁、添加任务

所以当我点击项目 1 的 add_task 时,我会被重定向到一个新的任务表单来为该项目创建一个任务。

我已添加 project) %> 在项目索引视图中,所以当我点击 add_task 时,它会将我重定向到 /task/new?project_id=1

但是当我提交任务时,任务并没有链接到项目。

如何获取 project_id?

有人有教程或示例说明我应该怎么做吗?

谢谢,

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    就像 Oscar 建议的那样,您可能希望在表单中添加一个额外的字段,将 project_id 提交给参数。然后在您的更新或创建函数中,您可以使用参数值创建记录,尽管在隐藏字段上确保您正确设置了值。

    <%= f.hidden_field :project_id, :value => project.id%>
    

    【讨论】:

    • 谢谢,我想我错过了价值归因。我试试看。
    • 但是如何从 url 中获取值? /task/new?project_id=1
    • 用于检索 URL/URI 数据 rails 带有 ActiveRecord::Request 哈希,可以通过请求方法返回。尝试在 request.env 上使用 gem pry 并查看范围内的数据。 from 指的是协议等。它很棒
    【解决方案2】:

    在您的表单中,为项目 ID 添加一个隐藏字段

    <%= f.hidden_field :project_id %>
    

    编辑:也将其放入您的新操作中:

    @task = Task.new(:project_id => params[:project_id])
    

    【讨论】:

    • 问题是实际的键值没有像这样提交,你需要通过链接 :value 键来设置值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 2012-01-27
    • 2019-11-13
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多