我试图让多个选择与phoenix_html表单助手一起工作
<%= select f, :challenge_ids, ["foo": "1","bar": "2","baz": "3"], class: "form-control", multiple: "" %>
Run Code Online (Sandbox Code Playgroud)
但只有最后一个选定项目的id才会被发送到params中的服务器
%{"challenge_ids" => "3", "content" => "", "name" => ""}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:challeng_ids改为:"challenge_ids[]"试图获得类似于多选标记的rails输出的东西,但这没有任何区别
我希望仅当变更集有效并包含文件时才能够触发文件上传。
是否有可能/一个好主意,%Plug.Upload例如投射
def changeset(model, params \\ :empty) do
model
|> cast(params, @required_fields, @optional_fields)
|> save_image
end
defp save_image(changeset) do
case changeset do
%Ecto.Changeset{valid?: true, changes: %{image: image}} ->
%{ "url" => "http://" <> image_url } = Cloudinary.upload(image)
put_change(changeset, :image_url, image_url)
_ ->
changeset
end
end
Run Code Online (Sandbox Code Playgroud)
我试图设置:image为类型的虚拟字段,:map但它不会投射` %Plug.Upload
schema "model" do
field :image_url, :string
field :image, :map, virtual: true
timestamps
end
Run Code Online (Sandbox Code Playgroud)
这只会导致消息验证错误 Image is invalid
我有许多任务和工作,希望能够在生产灵丹妙药应用程序上手动执行。目前,我通过在中运行代码来执行它们remote_console。我试图通过使用来运行它们/bin/my_app command MyModule my_func,但是我收到关于另一个Erlang节点正在使用的资源的错误。
我更喜欢使用/bin/my_app command MyModule my_func样式,以便可以使用ssh运行bash脚本。
在Elixir应用程序上运行远程任务的推荐方法是什么?
我想设置一个自定义的嵌套控制器操作,但我无法弄清楚路由.
我一直收到以下错误
No route matches [GET] "/assets"
Run Code Online (Sandbox Code Playgroud)
的routes.rb
resources :companies do
resources :requests do
match :accept
end
end
Run Code Online (Sandbox Code Playgroud)
index.html.rb
<% @requests.each do |request| %>
<ul class="users">
<li>
<%= full_name(request.profile) %>
<%= request.status %>
<%= link_to "Accept",
:controller => "requests", :action => "accept",
:id => request.id %>
</li>
</ul>
<% end %>
Run Code Online (Sandbox Code Playgroud) 如果我有一个方法,我想在几个控制器中使用,以保持我的代码DRY.这样做的轨道方式是什么?
我正在尝试格式化字符串,如下所示
确保所有数字都使用破折号作为分隔符.示例:480.01.4430和480014430都是480-01-4430.
这是我到目前为止所提出的,但我无法理解为什么它不起作用
def format_ssns(string)
ssn = string[/\d{9}/]
ssn.gsub(/\d{9}/, /\d{3}-\d{2}-\d{4}/)
end
Run Code Online (Sandbox Code Playgroud)