Как да извикам text_field въз основа на етикет?

Не знам дали това е възможно, но ако потребител създаде етикет, наречен mission-statement във формуляр за оценка:

<%= f.text_field :name %>
<%= f.text_field :tag_list, valuation: @valuation.tag_list.to_s.titleize %>

как можем да накараме :name от тази оценка да се появи в началната страница :jumbotron:

<% content_for :jumbotron do %>
      <h1>Mission</h1>
      <p>
        # Mission Statement Goes Here
        <% @valuation_mission.each do |valuation_mission| %>
          <%= valuation_mission.name %>
        <% end %>
      </p>
<% end %>

Предполагам, че ще трябва да напишем метод в pages_controller, както се опитах:

class PagesController < ApplicationController
  def home
      @user = current_user
    if logged_in?
      @habits = current_user.habits
      @valuations = current_user.valuations
      @accomplished_goals = current_user.goals.accomplished
      @unaccomplished_goals = current_user.goals.unaccomplished
      @averaged_quantifieds = current_user.quantifieds.averaged
      @instance_quantifieds = current_user.quantifieds.instance
      @valuation_mission = current_user.valuations #We'd need to add .something to make this work?
      @feed_items = current_user.feed.paginate(page: params[:page])
    end
   end
end

Използвам скъпоценния камък acts-as-taggable-on, който научих как да прилагам от тук: http://railscasts.com/episodes/382-tagging

Благодаря ви за отделеното време!


person AnthonyGalli.com    schedule 07.04.2015    source източник
comment
current_user.valuations трябва да върне списъка с всички (може да е празен!) запис на оценка, свързан с current_user   -  person MrYoshiji    schedule 07.04.2015
comment
Добре, готино, преработих въпроса @MrYoshiji   -  person AnthonyGalli.com    schedule 07.04.2015
comment
Какво точно искате да направите с оценките на даден потребител? Вече ги получавате, като просто направите current_user.valuations. Ако искате да получите всичките им имена със запетая между всяко например, използвайте current_user.valuations.map(&:name).join(', ')   -  person MrYoshiji    schedule 07.04.2015
comment
Опитвам се да изтегля само оценки @MrYoshiji с етикета: изявление на мисията.   -  person AnthonyGalli.com    schedule 07.04.2015
comment
Какво връща current_user.valuations? Масив от низове? Ако да, тогава current_user.valuations.select{ |tag| tag.match(/mission-statement/) }   -  person MrYoshiji    schedule 07.04.2015
comment
Благодаря ти @MrYoshiji! На прав път си, освен че получавам undefined method 'match' for #<Valuation:0x007f921ab002a8>. В моята миграция имам това по отношение на таговете: create_table :tags do |t| t.string :name end. Надявам се това да е полезно!   -  person AnthonyGalli.com    schedule 07.04.2015


Отговори (1)


Можете да използвате това:

current_user.valuations.tagged_with('mission-statement')

Намерено в документацията: https://github.com/mbleigh/acts-as-taggable-on#finding-tagged-objects

person MrYoshiji    schedule 07.04.2015