如何在Rails中的标签的href中使用前缀(路径)

时间:2018-09-15 19:07:25

标签: html ruby-on-rails

我正在编写链接到图像特定部分的代码。

如果link_to中提供了区域标签,我将无法使用。

所以我想使用前缀(路径)路径来使用标签href。

完整代码

<%= image_tag "map.png" , usemap: "#map1" %>
  <map name="map1"> 
    <area shape="rect" coords="21,647,173,822" href="/posts/index" title="posts">
  </map>

尝试输入代码//不起作用

href="#{posts_path}"

2 个答案:

答案 0 :(得分:0)

您可以为此使用普通ERB。像这样使用它:

<%= content_tag(:map, name: 'map1') do %>
  <%= tag.area shape: "rect", coords: "21,647,173,822", href: posts_path, title: "posts" %>
<% end %>

或者,您也可以使用content_tagtag

tag(name, options = nil, open = false, escape = true)

注意:Legacy syntax of tag将在以后的Rails版本中弃用。

run :: (MonadIO m, MonadReader r m, HasNetworkConfig r) => AppConfig -> m ()
run config = do
  serverPort <- view (networkConfig . port)
  let settings =
        setPort serverPort $
        setBeforeMainLoop (liftIO $ hPutStrLn stderr ("listening on port " ++ show serverPort)) defaultSettings
  liftIO $ runSettings settings (mainServer config)

printM :: (MonadIO m, Show a) => a -> m ()
printM a = liftIO $ print a

type ReaderAPI = "ep1" :> Get '[ JSON] String :<|> "ep2" :> Get '[ JSON] String :<|> Raw :<|> EmptyAPI

readerApi :: Proxy ReaderAPI
readerApi = Proxy :: Proxy ReaderAPI

fromConfig :: (Functor m, MonadReader r m, HasNetworkConfig r) => m String
fromConfig = view (networkConfig . host)

rawValue :: (Applicative m) => m String
rawValue = pure "1797"

readerServer :: (Monad m) => ServerT ReaderAPI (AppT m)
readerServer = rawValue :<|> fromConfig :<|> Tagged (error "raw server") :<|> emptyServer

nt :: AppConfig -> AppT IO x -> Handler x
nt config x = do
  res <- liftIO $ runExceptT $ runReaderT (runApp x) config
  case res of
    Left e       -> throwError e
    Right result -> return result

mainServer :: AppConfig -> Application
mainServer config = serve readerApi api
  where
    api = hoistServer readerApi (nt config) readerServer

答案 1 :(得分:0)

查看此示例

<%= image_tag "map.png" , usemap: "#map1" %>

<img usemap="map1" src="map.png"  />

<map name="map1">
    <area href="<%= url_for posts_path %>" title="posts" coords="21,647,173,822" shape="rect" />
    <area href="<%= url_for :controller => "post", :action => "all" %>" alt="All posts" coords="190,0,386,22" shape="rect" />
    <area href="<%= url_for new_resource1_path %>" alt="New resource1" coords="387,0,657,23" shape="rect" />
</map>