2

我是一名学习 Rails 的大一新生,正在从事我的第一个关于在线书籍写作的项目。

我已经制作了用户、书籍和部分的 MVC。我想创建一个名为“Author Place”的按钮,它可以显示当前登录用户写的所有文章。

我想问一个简单的问题。如何使用当前用户名创建条件以从图书数据库中选择当前作者的作品。我应该将此代码放在控制器还是视图中?

代码如下。

current_userApplicationController 的方法:

protect_from_forgery
helper_method :current_user

private
def current_user
  @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

截面模型:

class Section < ActiveRecord::Base
  attr_accessible :book_id, :section_content, :section_tag, :user_username
  belongs_to :book
  belongs_to :user
end

部分控制器:

class SectionsController < ApplicationController
  def userpieces
    @sections=Section.find(:all, :conditions=>"user_username=current_user.username") # This part doesn't work
  end
end

或者有其他方法可以做到这一点的任何建议?

4

2 回答 2

2

假设您的模型中有相应的has_many :sections关联,请User尝试以下操作:

@sections = current_user.sections
于 2013-09-12T17:02:04.930 回答
0

As depa and izuriel mentioned, you should be able to get it simply if your model relation is correctly set.

Anyway, if you wish to get it in the way you try please use:

@sections=Section.find(:all, :conditions => ["user_username= ?",current_user.username])

Please note, in rails 3, .find(:all is deprecated, please use .all instead.

于 2013-09-12T17:12:03.037 回答