2009-11-06 29 views
6

Tôi muốn chuyển đổi tiêu đề của trang thành URL thân thiện và lưu trữ nó trong cơ sở dữ liệu dưới dạng liên kết cố định. Vấn đề của tôi là tôi không thể sử dụng phương pháp parameterize. Nó không hoạt động. Các biến thể khác đang hoạt động như upcase hoặc downcase nhưng parameterize không hoạt động. Có trường hợp đặc biệt nào cho parameterize không?Làm thế nào để sử dụng parameterize trong Rails?

Đây là mã của tôi:

Bộ điều khiển:

def create 
params[:page][:permalink] = params[:page][:title].dup 
@page = Page.new(params[:page]) 
end 

mẫu:

class Page < ActiveRecord::Base 
before_save :makeitpermalink 
before_update :makeitpermalink 

private 
    def makeitpermalink 
    permalink.parameterize! 
    end 
end 
+3

Chào mừng bạn trên SO, vui mừng khi thấy những người say mê đường ray ở đây. Lần tới hãy thử sử dụng định dạng mã và đặt câu hỏi của bạn một tiêu đề tốt hơn để nhận phản hồi. Tôi vừa chỉnh sửa bài đăng của bạn, nhưng chỉ để bạn biết. Về câu hỏi tôi không biết. Bạn có thể cung cấp thông báo lỗi hoặc kết quả bạn nhận được không? – marcgg

+0

Trong mô hình, bạn cũng chỉ cần có callback before_save; before_update là không cần thiết. – amaseuk

+0

btw nếu u có "before_save", "before_update" là dư thừa – choonkeat

Trả lời

9

Theo tài liệu của Rails, không có tiếng nổ (dấu chấm than) phiên bản của parameterize phương pháp, vì vậy hãy thử xóa nó:

def make_it_permalink 
    self.permalink = self.permalink.parameterize 
end 
+1

Nếu tôi hiểu những gì anh ấy đang cố gắng làm ở đây, điều này có thể phải là: self.permalink = self.permalink.parameterize –

+0

Cảm ơn tất cả các bạn. – railslover

Các vấn đề liên quan