Как отобразить значение, выбранное пользователем, в другом представлении - PullRequest
0 голосов
/ 11 декабря 2011

Я новичок в Ruby on Rails.У меня есть таблица состояний.У меня есть представление (скажем, вид 1), чтобы перечислить все штаты в стране.Когда пользователь нажимает на название состояния, он / она переводится в другое представление (скажем, представление 2) с подробностями выбранного состояния.

Я пытаюсь использовать метод find.Но можно было связать только имя состояния (в представлении 1) с представлением 2. Нужно ли передавать имя состояния (из представления 1) в переменную и использовать переменную во втором представлении, т.е. в представлении 2?

Это в индексном представлении

<% @cds.each do |cd| %>
<h5><%= link_to  cd.name :action=>:lwstlevel%></h5>

Это контроллер.

def index       
    @cds = Cd.all
    end

    def lwstlevel               
    @x = Cd.find(params[:name])
    end

Это представление первого уровня

<h2>Welcome to  <%= @x.name %> </h>
<p> <%= @x.dscr %> </p>

Cd - моя таблица состояний.В индексном представлении, если пользователь щелкает по любому названию состояния, ему необходимо перейти в представление верхнего уровня, в котором должны отображаться сведения об этом состоянии.надеюсь, этого будет достаточно. Я попробовал несколько вещей, но ни один из них не дал желаемых результатов.

1 Ответ

1 голос
/ 11 декабря 2011

Изменение

<%= link_to cd.name, :action => :lwstlevel %>

до

<%= link_to cd.name, :action => :lwstlevel, :id => cd.name %>

и

def lwstlevel               
  @x = Cd.find(params[:name])
end

до

def lwstlevel               
  @x = Cd.find(params[:id])
end

Изменить имя на id - это идентификатор по умолчанию для действия члена, однако вы можете оставить его как имя.

...