未在编辑操作,嵌套对象上传递的争论

时间:2017-01-15 20:00:58

标签: html ruby-on-rails

我正在尝试为我的帖子对象编写一个编辑动作,它嵌套在项目中。从它的外观我应该做的一切,但由于某种原因,当我下载加载表单时,此错误消息显示“表单中的第一个参数不能包含nil或为空”

发送的参数是正确的“project_id”=>“308”,“id”=>“41”,但似乎表单不知道如何处理它们。

形式

.....
<div class="row">
  <div class="col-md-12" id="postform">
    <%= form_for ([@project, @post]), html: { multipart: true }  do |f| %>

....

视图

....
<% if current_user?(post.user) %>
                    <%= link_to edit_project_post_path(@project, post ) do %>
....

控制器

....

    before_action :logged_in_user, only: [:create, :edit]

    def edit
    @project = Project.find(params[:project_id])
    @post = @project.posts.find(params[:id])
    end
....

post是项目的嵌套对象,因此它已在路由文件上配置。

可能导致此问题的任何想法?

我想也许我需要在表单上指定这些值用于...

感谢您的帮助

----编辑----

  resources :projects do
    resources :comments,:posts
  end

resources :posts,              only: [:create, :destroy, :edit]

1 个答案:

答案 0 :(得分:0)

form_for不适用于multipart:true,请尝试删除或尝试使用form_tag。

最好的问候。