> > Hi all, I''ve been developing a Rails app, I almost finish so, I decided > refactor my code. Here some doubts1.- I''ve Job and User controllers, a user has jobs but when you create the job there isn''t user assigned. So I''ve the myworks in the entries controller: def myworks @entries = Entry.find_all_by_user_id(current_user.id) respond_to do |format| format.html format.xml { render :xml => @entries } end end and I''ve this route: match ''/myworks'' => ''entries#myworks'', :as => ''myworks'' So I access it via the URL: localhost:3000/myworks But I move it to the User controller (I think it''s better): def myworks @entries = Entry.find_all_by_user_id(self.id) respond_to do |format| format.html format.xml { render :xml => @entries } end end and I want to access It with this url: localhost:3000/user/1/myentries Question: How do I to do that? 2.- I''ve this img tag many times in my views:> <img src="<%= entry.officeentrystate ? "../images/buttons/flag_green.gif" : > "../images/buttons/flag_red.gif"%>" > title="<%= t(''entries.fields.officeentrystate'') %>" > alt="<%= t(''entries.fields.officeentrystate'') %>"/>Question: There''s a way to create a helper to do that? Like,> helper_name(title, value)I''ll really appreciate your help. Regards, -- TSU. Amador Cuenca -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Amador I think you need to nest the models in the routes.rb file This will give you the url''s you require map.resources :users, :has_many => :entries This give the following routes: (run "rake routes | less" to see full routes list and link_to path and url''s) Check out http://railscasts.com episode 70 "Custom routes", 34 "Named routes" and then go on to 139 "nested resources" Send the models you have so we can see the relationships -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
OK: My User model: require ''digest'' class User < ActiveRecord::Base attr_accessor :passwd validates :passwd, :confirmation => true, :length => { :within => 6..20 }, :presence => true, :if => :password_required? validates :nickname, :uniqueness => true, :length => { :within => 5..50} has_many :comments has_many :entries, :class_name => "User", :foreign_key => "geomatics_elaboration_id" has_and_belongs_to_many :entries before_save :encrypt_new_password def fullname (self.firstname + " " + self.lastname) end def self.authenticate(nick, passwd) user = User.find_by_nickname(nick) return user if (user and user.active and user.authenticated?(passwd)) end def authenticated?(passwd) self.password == encrypt(passwd) end protected def encrypt_new_password return if passwd.blank? self.password = encrypt(passwd) end def password_required? password.blank? or passwd.present? end def encrypt(string) Digest::SHA1.hexdigest(string) end end My Entry model: class Entry < ActiveRecord::Base belongs_to :applicant belongs_to :entry_type belongs_to :parish belongs_to :elaborator, :class_name => "User", :foreign_key => "geomatics_elaboration_id" belongs_to :checker, :class_name => "User", :foreign_key => "geomatics_checker_id" has_many :comments has_and_belongs_to_many :users def find_related_applicant_by_idcard(idCard) self.applicant_id = Applicant.find_by_idcard(idCard).id end end -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Wed, Feb 9, 2011 at 10:22 PM, Amador Antonio Cuenca <sphi02ac-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:> Hi all, I''ve been developing a Rails app, I almost finish so, I decided >> refactor my code. Here some doubts > > > 1.- I''ve Job and User controllers, a user has jobs but when you create the > job there isn''t user assigned. > So I''ve the myworks in the entries controller: > > def myworks > @entries = Entry.find_all_by_user_id(current_user.id) > respond_to do |format| > format.html > format.xml { render :xml => @entries } > end > end > > > and I''ve this route: > > match ''/myworks'' => ''entries#myworks'', :as => ''myworks'' > > So I access it via the URL: localhost:3000/myworks > > But I move it to the User controller (I think it''s better): > > def myworks > @entries = Entry.find_all_by_user_id(self.id) > respond_to do |format| > format.html > format.xml { render :xml => @entries } > end > end > > > and I want to access It with this url: localhost:3000/user/1/myentries > > Question: How do I to do that? > > Yes, It makes sense to put that method in the User controller. For theroutes, you could do something like match ''/user/:id/myentries'' => ''entries#myworks'' and then in your method, change self.id to params[:id] in the line @entries = Entry.find_all_by_user_id( params[:id <http://self.id/>] ) 2.- I''ve this img tag many times in my views:> >> <img src="<%= entry.officeentrystate ? "../images/buttons/flag_green.gif" >> : "../images/buttons/flag_red.gif"%>" >> title="<%= t(''entries.fields.officeentrystate'') %>" >> alt="<%= t(''entries.fields.officeentrystate'') %>"/> > > > Question: There''s a way to create a helper to do that? Like, > >> helper_name(title, value) > > > I guess, you are passing the entry object to the above image tag, make ahelper call it whatever you want def helper_name entry <img src="<%= entry.officeentrystate ? "../images/buttons/flag_green.gif" : "../images/buttons/flag_red.gif"%>" title="<%= t(''entries.fields.officeentrystate'') %>" alt="<%t(''entries.fields.officeentrystate'') %>"/> ... ... end and then call the helper in the view by <%= helper_name entry %> If you want to use the helper in many views across many models, write the helper in the application_helper.rb file. Let me know if anything doesn''t work out. Happy to help.> I''ll really appreciate your help. > > Regards, > -- > TSU. Amador Cuenca > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.