Nie chce ukrywac linka do strony glownej

Tak jak w temacie … po wczytaniu domowej strony mam postac adresu cos.pl/ a
chcialbym aby byla wyswietlana faktyczna sciezka do strony glownej… np w moim wypadku
cos.pl/a/3/dane_kontaktowe

Prosze o sugestie :slight_smile:

A ja prosze o kod, który wyświetla stronę główną

Chyba o to chodzi ;] fragment controllera

[code]class SiteController < ApplicationController
layout :set_layout

public :render_to_string
helper_method :render_to_string

def index
redirect_to :action => “main”
end

def main

@article = Article.find_on_main @lang, @config['arttypes'] if @config['articles_on_main']
@article = Article.new if @article.nil? && @config['articles_on_main']

end

def article
@article = Article.find_article @lang, params[:id]
if @article.nil?
render :file => “public/404.html”, :status => 404
return
end
@metas = {}
@article.metas.each {|m| @metas[m.key] = m}
end[/code]
moze byc nawet przekierowanie na artykul jaki jest ustawiony jako startowy :slight_smile: sek w tym ze w linku musze miec cos wiecej niz ‘/’
gdyz nie dziala mi przez to opcja wyswietlania dolaczonych artykulow … najlepiej zobrazuje to linkiem :

http://www.toster.jaaz.pl:3911 - ten sam artykul jednak nie pokazuje dolaczonego dodatkowego artykulu
http://www.toster.jaaz.pl:3911/a/3/dane_kontaktowe - peen adres strony glownej ( dolaczony dodatkowy artykul )

A to mi wyswietla dodatkowy artykul

[code]<% if params[:action] == “article” and params[:id] and params[:id] != “” and params[:id].to_i != 0 %>
<% a_tmp_l = Article.find(:all, :conditions => {:id => params[:id]}) %>
<% if a_tmp_l and a_tmp_l.length > 0 %>
<% a_tmp = a_tmp_l.first %>
<% ArticleSub.find(:all, :conditions => {:article_id => a_tmp.id}, :order => “position ASC”).each do |tmp|%>

		    <div class="contentup">
		
		    </div>
                	    <div class="contentmiddle">
                		<div class="include">
			    &nbsp;
			    <%= render :partial => "article", :object => Article.find(tmp.sub_id) %>
			    &nbsp;
			</div>
                	    </div>
                	    <div class="contentdown">
                		<div class="include2">
			</div>
                	    </div>
		<% end %>
		<% end %>
		<% end %>[/code]

ech …

powinneś co nieco do routes przenieść, tam też możesz ustawic jak wyglada map.root tak dla podpowiedzi, A tak wogóle to spójrz krytycznie na ten kod powyżej. Zanim tutaj co mniej życzliwi go zaatakują ;]

Do tego te mieszanie w widoku rzeczy z kontrolera, helperów jakiś czy coś. Ogólnie jest to źle koncepcyjnie rozwiązane. No i w Kontrolerze w jednej akcji masz i find i create jakimiś warunkami dzikimi opatrzone. Wywal to zacznij od nowa.

Niestety nie mam pelnej swobody poniewaz jest to fragment silnika cmsa do wielu stronek … :frowning: - a kazda stronka inna i inne wymagania
jestem pewien ze da sie to jakos zalatwic przekierowaniem aby przekierowywal do artykulu ktory ma status strony glownej :frowning: tylko pytanie how …

Ech no to jak musisz to robić już brzydko to napisz co chcesz osiągnąć. Czyli jakie są dane (sytuacja wejściowa) i co ona ma robić.

Co chcialbym osiagnac … napisalem wyzej :slight_smile: chcialbym aby na stronie glownej wyswietlaly mi sie dodatkowe artykuly… przedstawilem sytuacje z linkami jak dziala a przy jakim linku nie :slight_smile: Wszystko powinno byc ok. Wkleilem kodzik z widoku jaki mi zapewnie wyswietlanie tego dodatkowego artykulu …

Samemu wykoncypowalem ze to wina linka :wink:

no jak masz ten redirect_to main możesz tam podać link konkretny, jak nie masz dostępu do routingu ?! np

def index #strona główna @a = Article.first(:conditions => ['costam by ten artyul znalazlo co chcesz']) redirect_to "/a/#{@a.id}/{@a.name}" #nie ma pojecia co i jak tu, ale koncepcja moze byc taka, ale ten kod to do smieci tylk osie nadaje, nie wierze ze ktos za taki cms zaplacil cos, bo t ojest do zrobienia od nowa end
Do tego masz chyba dostęp do helperów, możesz sobie jakaś metode napisać by jakos ten widok poprawić

To wiele stronek ma problem. Poniżej szkic, jak to najprościej zmienić. (Tak, wiem, że są includy nie ma łapania wyjątku i można generować ładniej partiale, ale tu trzeba zacząć od podstaw).

w kontrolerze

def articles @article = Article.find(params[:id]) @sub_articles = @article.article_subs #fatalnie się odmienia, sub_articles byłoby prościej end
W widoku:

<- @sub_articles.each do |sub_article| %> <masa divov> <%= render :partial => "article", :object => sub_article.article %> </masa divov> <% end %>
Idź w tym kierunku, a będzie prościej. Dzisiejszy odcinek sponsorują literki MVC:

Dziekuje serdecznie :slight_smile: problem zostal rozwiazany. Jestescie wielcy !