我想构建一个dashboard.html.erb页面,其中仅显示当前用户发布的作业。 到目前为止,这是我的代码:
<% @jobs.each do |job| %>
<% if job_author(job) %>
<h3 class="title is-4 index-title"><%= link_to job.title, job %></h3>
<% end %>
<% end %>
有什么建议吗?谢谢 更新:
工作模式:
class Job < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
def self.search(search)
if search
where(['title LIKE ? or description LIKE ?', "%#{search}%", "%#{search}%"])
else
all
end
end
end
用户模型:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
belongs_to :user
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :jobs
end
答案 0 :(得分:0)
有多种解决方法,下面是简单的解决方案。根据您的要求进行更新。 对于用户和作业表,在使用SQL Db的情况下更新您的迁移,使其具有其他属性。
class User
has_many :jobs
end
class Job
belongs_to :User
#user_id should be present in db
end
说您当前登录的用户位于@user对象中。要获取用户发布的所有作业,请使用以下代码(验证语法)
@jobs = @user.jobs
<% @jobs.each do |job| %>
<h3 class="title is-4 index-title"><%= link_to job.title, job %></h3>
<% end %>
答案 1 :(得分:0)
我修复了!问题是我(一个完整的白痴)忘记了定义控制器中的仪表板。无论如何,谢谢您的帮助!祝你有美好的一天!
def dashboard
@jobs = Job.all.order("created_at desc")
end