2011-08-25 38 views
6

Tôi có kiểu location và kiểu post. Tôi muốn cho phép người dùng tạo mới posts từ trang index của mô hình location. Làm thế nào để làm điều đó? Tôi đã thử hiển thị postnew.html.erb như một phần trong locationindex.html.erb, nhưng điều này dẫn đến lỗi là postnew.html.erb tham chiếu biến số @post.Đường ray: Hiển thị biểu mẫu từ mô hình khác nhau trong chế độ xem

Tôi nên làm điều này như thế nào?

Trả lời

14

Hãy thử một cái gì đó như thế này

LocationController 

def index 
    @location = Location.find(:all) 
    @post = Post.new 
end 

Bây giờ vị trí ur xem sẽ được tiếp cận với các trường hợp biến @post. Render một phần sử dụng mà

render :partial => 'posts/post', :object => @post 
+0

+1, ..hoặc theo cách tương tự với những gì Allesklar đề xuất: sử dụng 'Post.new' thay vì biến, nhưng điều này phụ thuộc vào chế độ xem: biến có thể được 'hardcoded' ở đó. – Arsen7

0

Chỉ cần tạo một biến số @post trong hành động của bạn trong bảng điều khiển vị trí.

+0

Đó mang lại cho tôi lỗi này: 'Dự kiến ​​/home/eyekandy/rails_apps/eyekandy/app/controllers/locations_controller.rb để xác định LocationsController' –

+0

Sau đó, bạn có lỗi cú pháp ** ** trong mã của bạn. Bạn có thể hiển thị mã của hành động của bạn không? Tôi cho rằng bạn chỉ chỉnh sửa hành động, nhưng lỗi có thể ở một nơi khác - có thể bạn đã vô tình xóa một số ký tự? – Arsen7

3

Bạn có thể bắt đầu các hình thức như thế này:

<%= form_for Post.new do ... %> 
Các vấn đề liên quan