2009-12-14 34 views
60

Tôi có dòng mã này:qua tham số bởi link_to Ruby on Rails

<%= link_to "Add to cart", :controller => "car", :action => "add_to_cart", :car => car %> 

khi im trong phương pháp add_to_cart ... làm thế nào tôi có thể gọi: xe xin vui lòng?

@car = Car.new(params[:car]) 

Điều đó không hiệu quả vì nó nói rằng tôi đang cố gắng xâu chuỗi nó.

Tôi không hiểu điều gì sai; bởi vì tôi đã sử dụng điều này để tạo người dùng mới và nó hoạt động tốt.

Nhân tiện, ô tô là đối tượng ô tô của tôi.

Trả lời

127

Hãy thử:

<%= link_to "Add to cart", {:controller => "car", :action => "add_to_cart", :car => car.id }%> 

và sau đó trong điều khiển của bạn

@car = Car.find(params[:car]) 

đó, sẽ tìm thấy trong bảng 'xe hơi' của bạn (như với r ails pluralization) trong DB của bạn một chiếc xe có id == to car.id

hy vọng điều đó sẽ hữu ích! hạnh phúc mã hóa

hơn một năm sau đó, nhưng nếu bạn nhìn thấy nó hoặc bất cứ ai, tôi có thể sử dụng các điểm, D

+0

Nhưng nếu tham số phụ thuộc vào, giả sử, giá trị của một đầu vào, có thể là động trong tự nhiên? – Sebastialonso

2

Có thể bạn không muốn chuyển đối tượng car làm tham số, hãy thử chỉ cần đi qua car.id. Bạn nhận được gì khi bạn inspect(params) sau khi nhấp vào "Thêm vào giỏ hàng"?

+0

vấn đề với điều đó là tôi không có những chiếc xe được lưu bất cứ nơi nào kể từ khi tôi cạo các informatin từ web và không lưu trữ chúng bất cứ nơi nào .. sau đó id là không tồn tại như được nêu ra và ngoài đó sẽ là vô ích:/ – Lilz

+0

Một lần nữa, những gì bạn nhận được khi bạn kiểm tra (params)? – bensie

+1

params [: product] .inspect đã trở lại trống "" – Lilz

6

Có thể thử này:

<%= link_to "Add to cart", 
      :controller => "car", 
      :action => "add_to_cart", 
      :car => car.attributes %> 

Nhưng tôi thực sự muốn nhìn thấy nơi các đối tượng xe là nhận được thiết lập cho trang này (ví dụ, phần còn lại của xem).

69

ở trên không làm việc cho tôi nhưng này đã

<%= link_to "text_to_show_in_url", action_controller_path(:gender => "male", :param2=> "something_else") %>

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