Проблемы с передачей значения из вида в контроллер в Rails 3.1.1 - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть две модели Product и Category, у них есть ассоциации has_many и assign_to соответственно. Теперь, что я пытаюсь сделать, когда я нажимаю на определенную категорию, я хочу, чтобы все продукты этой категории были в списке. Как мне это сделать

вот мой взгляд

 <p><%=link_to @product.category.name, show_by_category_products_path(@product.category.id)%> <%= @product.name%> <%=@product.category.id%><p>

и метод в контроллере

  def show_by_category
   @products = Product.where("category_id=?", :id)
  end

Спасибо! (Я знаю простые вещи, но иногда вы ослепаете и не видите прямого пути, поэтому вам приходится искать помощи у других)

EDIT ладно, может быть, я нашел способ обойти это .. но я не уверен, правильно ли это сделано

Теперь мой вид и модель выглядят примерно так

<p><%=link_to @product.category.name, show_by_category_product_path(id: @product.id)%> <%= @product.name%>

def show_by_category
 @prod = Product.find(params[:id])
 @products = Product.where('category_id=?', @prod.category_id)
end

Скажите мне, если это правильный путь?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Ваша находка должна выглядеть как Category.find(params[:id]).products.Но попробуйте следовать принципам маршрутизации RESTful и вкладывать свои ресурсы.Rails сделает для вас гораздо больше.

1 голос
/ 17 ноября 2011

Я бы порекомендовал вам прочитать хотя бы руководство Getting Started , потому что вы делаете это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...