我在ruby on rails应用程序上的新手,从最近几天开始,我很难将空白数据插入到数据库中。
这是我的控制者:
@post = Post.create(created_at: Time.now, user_id: @user.id)
这是我的表格:
<%= form_for :user, url: user_path(@user), action: :create, method: :post do |f| %>
<%= f.text_field :title %>
<%= f.text_area :description%>
<%= f.text_field :location%>
<%= f.submit %>
<% end %>
我的模特:
class User< ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
end
请帮助我。
答案 0 :(得分:2)
您需要将来自表单的数据传递给create
方法。
使用以下命令更新create
操作:
@post = @user.posts.create(user_params)
在控制器的末尾添加以下方法:
private
# For strong parameters
def user_params
params.require(:post).permit(:title, :description, :location)
end
不要忽视您需要了解以下内容:
您无需手动传递created_at
值。让框架为您处理。
@user.posts.create
表示您正在为posts
创建@user
。 @user.posts.create
会自动填充您的user_id
列。
出于安全考虑,您应该使用strong parameters。
进一步建议阅读:Rails Official Guide。