【发布时间】:2015-08-24 06:00:05
【问题描述】:
我已经尝试了所有关于如何摆脱错误的 Stack 帖子 表单中的第一个参数不能包含 nil 或为空',并且他们的解决方案都不适合我。
我的应用涉及发布帖子,用户可以在其中上传图片。我希望他们能够直接从他们的文件系统上传,而不是获取图片网址。
这是我的控制器:
class PostsController < ApplicationController
before_action :all_posts, only: [:feed, :create]
respond_to :html, :js
def show
@post = Post.find_by_id(params['id'])
end
def create
@post = Post.create(post_params)
end
def new
@post = Post.new
end
private
def all_posts
@posts = Post.all
end
def post_params
params.require(:post).permit(:caption, :content, :image)
end
end
还有new.html.erb:
<footer>
<%= form_for @post, :html => {:multipart => true} do |f| %>
<%= f.text_field :caption %>
<%= f.text_field :content %>
<%= f.file_field :image %>
<%= f.submit %>
<% end %>
</footer>
人们一直建议将@post = Post.new 添加到表单和操作中,但没有一个对我有用。
另外,我已经检查了我的数据库,目前有 7 个帖子。
非常感谢您的帮助。
【问题讨论】:
-
你对应的控制器动作是什么?你的观点是:
feed.html.erb你应该在你的posts_controller中有一个feed动作
标签: ruby-on-rails ruby ruby-on-rails-4