2016-04-19 2 views
4

Я пытаюсь выяснить, как сделать приложение с Rails 4. Я постоянно зацикливаюсь на основных вещах, и, похоже, я не могу определить принципы, которые нужно использовать в будущем.Как определить путь ссылки

У меня есть модель профиля и промышленная модель. Ассоциации являются:

профиля:

has_and_belongs_to_many :industries, join_table: 'industries_profiles' 

Индустрия:

has_and_belongs_to_many :profiles, join_table: 'industries_profiles' 

В моей шоу странице профиля, я сейчас пытаюсь сделать ссылку на страницу промышленности:

<% @profile.industries.limit(5).each do |industry| %> 

    <%= link_to industry.sector.upcase, industry_path(@industry) %> 

<% end %> 

Я не могу найти что-нибудь, что работает для этой ссылки.

Я попытался следующие:

industry_path(@profile.industry) 
industry_path(@profile.industry_id) 
industry_path(industry) 
industry_path(profile.industry) 
industry_path(industry.id) 
industry_path(industry_id) 

Но все они догадок. Я не знаю, как подготовить док-станцию ​​API, чтобы я не мог понять ее содержание.

Может ли кто-нибудь увидеть, как установить ссылку на страницу показа другой стороны ассоциации HABTM для одной записи?

+0

Что у вас есть файл routes.rb? 'industry_path (industry)' - это тот, который вы должны использовать. –

+0

У меня: resources: industries – Mel

+0

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

ответ

0

Вы можете получить список своих маршрутов, запустив rake routes | grep industry в командной строке, которая даст вам таблицу с префиксом, действием и шаблоном uri. Например:

industries GET /industries(.:format)   industries#index 
       POST /industries(.:format)   industries#create 
new_industry GET /industries/new(.:format)  industries#new 
edit_industry GET /industries/:id/edit(.:format) industries#edit 
    industry GET /industries/:id(.:format)  industries#show 
       PATCH /industries/:id(.:format)  industries#update 
       PUT /industries/:id(.:format)  industries#update 
       DELETE /industries/:id(.:format)  industries#destroy 

В вашем случае, вы должны смотреть на show пути. Что такое индустрия, и вы добавляете _path до конца вашего префикса выше, который выходит industry_path. И так как вы указали свою переменную industry при определении своего цикла, вы можете использовать это вместо переменной экземпляра.

Короткий ответ: industry_path(industry)

Смежные вопросы