0

由於我是新來的導軌和web應用我真的不知道怎麼問這個專業術語,所以我將只介紹想什麼,我實現事件/鏈接處理

在我例如,我有控制器顯示來自世界各地用戶的所有消息。我希望用戶能夠決定這些消息是來自世界各地還是來自他的國家。

我知道如何得到相關消息,並把它們放到相關的變量:

@msg_glbl = msgs.all 
@msg_lcl = msgs.find_all_by_local(true) 

我的問題是在邏輯和如何使這個工作流程。我想讓網頁有一個標記的鏈接/按鈕/圖像,所以當用戶點擊它時,控制器會做一些事情。

我知道我需要JavaScript,但我不知道如何製作它,所以JavaScript會調用控制器中的特定方法或其他操作。

javascript: onclick(flag) do something in controller 

控制器將在@msgs放置相應的變量(全局或局部)和觀點總是會呈現@msgs

我意識到我失去了一些東西基本我只是不不知道如何在谷歌搜索這個。

感謝

回答

1

在您可以創建獲取將通過URL訪問的操作,你可以添加URL參數的作用範圍入店軌道。

可以說你的控制器被稱爲頁面和你的模型消息。然後,您將有1個動作控制器(應用程序/控制器/ pages_controller.rb),可以在兩種不同的方式被稱爲:

class PagesController < ApplicationController 
    # GET /pages/messages 
    # GET /pages/messages?only_country=1 
    def messages 
    if(params[:only_country].nil? || params[:only_country].to_s != '1') 
     @msgs = Message.all 
    else 
     @msgs = Message.find_all_by_local(true) 
    end 

    respond_to do |format| 
     format.html # messages.html.erb 
     format.json { render json: @msgs } 
    end 
    end 

只有一個在app /視圖/頁/ messages.html.erb

視圖

1航線的config/routes.rb中

get "/pages/messages" 

您的鏈接將指向/網頁/郵件和/網頁/郵件?only_country = 1個

乾杯。

編輯:改變了一切,以pages_controller.rb

+0

謝謝,我會嘗試,並報告 –

+0

這並不爲我工作。因爲我需要頁面控制器中的變量,我使用flash [:global] = true/false將值傳遞給適當的操作,並且在那裏我有消息邏輯。但是當我使用<%= link_to「global」,「/ messages/all」%>創建鏈接時,我得到一個缺少的模板錯誤...我錯過了什麼? –

+0

您是否創建了文件app/controller/messages_controller.rb和app/views/messages/messages.html.erb? – thexebolud