Как получить доступ к идентификатору по ссылке? - PullRequest
0 голосов
/ 12 октября 2011

Я отображаю список городов из базы данных, каждый в виде ссылки. Я хочу, чтобы, когда пользователь нажимал на любой из городов, действие реагировало, захватывая идентификатор этого города и повторно использовало его при следующем действии (показатьдействие в этом случае). Так как вы получаете идентификатор из ссылки? Ниже моя идея, которая не сработала. Заранее спасибо.

Просмотр / города

    <%@cities.each do |city| %>
    <a href="/deal/city"><%=city.name%></a><br/>
    <%end%>

Контроллер

   Class DealController < ApplicationController
   def all_cities
   @cities=City.find(:all)
   end

   def city
   @city=City.find(params[:city_id]) 
   session[:city_id] = @city.id
   redirect_to :controller=>"deal",:action=>"show"
   end  

   def show
   unless session[:city_id].nil? || session[:city_id].blank?
   @city = City.find(session[:city_id])
   @deals=@city.deals
   end

   end

маршруты

    get "deal/city"
    match 'deal/city'  => "deal#city"

1 Ответ

1 голос
/ 12 октября 2011

Вы не передаете city_id в ссылке.Попробуйте:

<% @cities.each do |city| %>
    <a href="/deal/city?city_id=<%= city.id %>"><%= city.name %></a><br/>
<% end %>

Если вы хотите, чтобы ссылка была похожа на "/ deal / city / 1", а 1 = params[:city_id], вы можете изменить свои маршруты следующим образом:

match 'deal/city/:city_id'  => "deal#city", :via => :get

и используйте такую ​​ссылку:

<% @cities.each do |city| %>
    <a href="/deal/city/<%= city.id %>"><%= city.name %></a><br/>
<% end %>
...