1. Table dealings has the field: id(int(11)), inout(varchar(11)) If I use this select: @deals = Dealing.find(:all,:condition=>["id = ? and inout = ?","1","in"]) then rails will return error with the tips of SQL syntax error if I change it to : @deals = Dealing.find(:all,:condition=>["dealings.id = ? and dealings.inout = ?","1","in"]) than it will be ok. Why? I think the former select should be working well and do not know the reason. 2. Suppose the relationships between the following tables: users has_many dealings dealings belongs_to user @user = User.find(params[:id]) @user.dealings.count(["inout = ?","in"]) How the sentence will be transfered into SQL? The rails return error with the tips of SQL syntax error,because it get the SQL : SELECT * FROM dealings WHERE (dealings.user_id = ''1'' and (dealings.inout = ''in'')) Why the generated SQL is in this kind error syntax and not : SELECT * FROM dealings WHERE (dealings.user_id = ''1'') and (dealings.inout = ''in'') ? Thanks -- Posted via http://www.ruby-forum.com/.