作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图只显示登录用户从数据库中创建的记录,但不知道该怎么做。当我尝试访问数据库并确定要从中提取的特定数据时出现错误。
时间 Controller
class HoursController < ApplicationController
before_action :require_user
def new
@hour = HourLog.where(:user_id => current_user.id)
@entry = HourLog.all
end
def create
@hour = HourLog.new(hour_params)
@hour.User_id = current_user.id if current_user
@hour.status = 'Pending'
if @hour.save
redirect_to '/dashboard'
end
end
private
def hour_params
params.require(:hour_log).permit(:assignment, :hours, :supervisor, :date,)
end
end
营业时间 View (new.html.erb)(将数据输入数据库的字段)
<% @entry.each do |hour| %>
<tr>
<td><%= hour.assignment %></td>
<td><%= hour.hours %></td>
<td><%= hour.supervisor %></td>
<td><%= hour.date %></td>
<td><%= hour.status %></td>
</tr>
<% end.empty? %>
<%= form_for(@hour, url: hours_path) do |f|%>
<tr>
<td id="dashfield"><%=f.text_field :assignment, :placeholder=> "Assignment"%></td>
<td id="dashfiled"><%=f.text_field :hours, :placeholder => "Hours"%></td>
<td id="dashfield"><%=f.text_field :supervisor, :placeholder=> "Supervisor/Location"%></td>
<td id="dashfield"><%=f.date_field :date, :placeholder=> "Date"%></td>
<%=f.hidden_field :status, :value => "Pending" %>
<%=f.hidden_field :User_id, :value => current_user.id %>
<td id="dashbtn"><%=f.submit 'Create' %></td>
</tr>
<%end%>
错误:
Started GET "/dashboard" for 127.0.0.1 at 2015-08-10 17:29:08 -0500
Processing by HoursController#new as HTML
User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 4]]
Completed 404 Not Found in 18ms
ActiveRecord::RecordNotFound (Couldn't find HourLog without an ID):
app/controllers/hours_controller.rb:4:in `new'
谢谢!
最佳答案
我认为这个功能:
def new
@hour = HourLog.where(:user_id => current_user.id)
@entry = HourLog.all
end
应该改为:
def new
@hour = current_user.hour_logs.new
@entry = current_user.hour_logs.all
end
假设模型user
配置了has_many :hour_logs
。
在您的模型中,user
有许多 hour_logs
表 hour_logs
必须有一个列 user_id
大写
要将列名从 User_id
更改为 user_id
,您需要创建一个新的迁移。在命令提示符下导航到 rails app 文件夹并执行:
rails g migration fixcolumn1
这将在 your-app-path/db/migrate
中生成一个名为 some-date_fixcolumn1.rb
的文件编辑此文件,以便出现以下内容:
def change
rename_column :hour_logs, :User_id, :user_id
end
之后回到提示符处执行
rake db:migrate
它应该从那里开始工作
关于ruby-on-rails - 找不到没有 ID rails 4 记录的 HourLog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930295/
我试图只显示登录用户从数据库中创建的记录,但不知道该怎么做。当我尝试访问数据库并确定要从中提取的特定数据时出现错误。 时间 Controller class HoursController c
我是一名优秀的程序员,十分优秀!